все Python 3localeфункция
locale.strxfrm()
сравнение строк
Преобразует строку в ключ, который сравнивается обычным < так же, как исходные строки по strcoll(); удобен как key для sorted().
Синтаксис
sorted(words, key=locale.strxfrm)
sorted(words, key=locale.strxfrm) быстрее, чем cmp_to_key(strcoll): каждая строка преобразуется один раз. Ключ — непрозрачная строка для текущей LC_COLLATE: сохранять её в файл или сравнивать после смены локали бессмысленно. В локали 'C' ключ совпадает с самой строкой, так что без setlocale() русская сортировка останется по кодовым точкам ('ё' после 'я').
Примеры
import locale
print(sorted(['b', 'A', 'a'], key=locale.strxfrm)) # → ['A', 'a', 'b'] — локаль C
print(locale.strxfrm('abc')) # → abc — в C ключ равен строке
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности