gpt4 book ai didi

python - 使用各种区域设置对 Python 中的字符串集合进行排序

转载 作者:太空狗 更新时间:2023-10-30 02:50:39 26 4
gpt4 key购买 nike

我想根据用户语言偏好对字符串列表进行排序。我有一个多语言 Python 网络应用程序,以这种方式对字符串进行排序的正确方法是什么?

我知道我可以像这样设置语言环境:

import locale
locale.setlocale(locale.LC_ALL, '')

但这应该在应用程序启动时完成(并且文档说它不是线程安全的!),根据当前用户(请求)设置在每个线程中设置它是个好主意吗?

我想要类似函数 locale.strcoll(...) 的东西,带有附加参数 - 用于排序的语言。

最佳答案

我会推荐 pyICU -- IBM 丰富开源的 Python 绑定(bind) ICU国际化图书馆。你制作了一个 Collat​​or 对象,例如与:

    collator = PyICU.Collator.createInstance(PyICU.Locale.getFrance())

然后你可以排序,例如按照法语规则的 utf-8 编码字符串列表,例如通过使用 thelist.sort(cmp=collat​​or.compare)

我遇到的唯一问题是,我没有找到适合 MacOSX 的 PyICU 和 ICU 的打包好的、立即可用的版本——我最终从源代码构建和安装:ICU 自己的源代码,3.6,来自 here -- 那里有适用于 Windows 的二进制文件和几个 Unix 版本,但没有适用于 Mac 的二进制文件; PyICU 0.8.1 来自 here .

除去这些构建/安装问题,以及 Python 绑定(bind)的文档有点少,如果您进行大量与 i18n 相关的工作,ICU 真的是天赐之物,而 PyICU 是一组非常有用的绑定(bind)!

关于python - 使用各种区域设置对 Python 中的字符串集合进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1526109/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com