Python 3 字符串排序是否依赖于区域设置?

8 投票
1 回答
1716 浏览
提问于 2025-04-29 00:33

Python中的 str.__lt__sorted 是根据字符的unicode索引来排序,还是根据某些地区特定的排序规则来排序呢?

暂无标签

1 个回答

9

不,字符串的排序并不考虑地区设置。它完全是根据Unicode编码点的排序规则来进行的。

locale模块确实提供了一个可以用于地区特定排序的locale.strxfrm()函数

import locale

sorted(list_of_strings, key=locale.strxfrm)

不过这个工具的功能非常有限;如果你有更复杂的排序需求,可能需要使用PyICU库

import PyICU

collator = PyICU.Collator.createInstance(PyICU.Locale(locale_spec))
sorted(list_of_strings, key=collator.getSortKey)

撰写回答