все 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Сообщить о неточности