Python Glossary English

все Python 3localeфункция

locale.strcoll()

сравнение строк

Сравнивает две строки по правилам LC_COLLATE: отрицательное число, ноль или положительное, как cmp в старом Python.

Синтаксис

locale.strcoll(string1, string2)

Пока не вызван setlocale(), LC_COLLATE — это 'C', и порядок совпадает с кодовыми точками: 'ё' оказывается после 'я', а заглавные — раньше строчных. Функция возвращает число, а не bool, и в sorted() её передают через functools.cmp_to_key; для сортировки быстрее key=locale.strxfrm. Сравнивайте знак результата, а не конкретное значение: оно зависит от платформы.

Примеры

import functools
import locale
print(locale.strcoll('a', 'B') > 0)  # → True — в C заглавные идут раньше
words = ['ёж', 'яблоко', 'еда']
print(sorted(words, key=functools.cmp_to_key(locale.strcoll)))  # → ['еда', 'яблоко', 'ёж']

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности