首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在PyICU中进行“自然排序”?

如何在PyICU中进行“自然排序”?
EN

Stack Overflow用户
提问于 2020-06-02 08:08:00
回答 1查看 371关注 0票数 1

使用PyICU,如何使用排序器按照“自然顺序”对字符串列表进行排序,即将10放在2之后而不是之前?

在ICU文档http://userguide.icu-project.org/collation/customization#TOC-Default-Options中,我可以看到有一个"numericOrdering“选项(a.k.a )。可以设置为on或off,但我不知道如何从UCOL_NUMERIC_COLLATION代码中设置该属性。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-02 08:08:00

可以在排序规则实例上使用.setAttribute方法。

属性名称和值来自附加到主icu模块的枚举:

代码语言:javascript
复制
import icu

collator = icu.Collator.createInstance(icu.Locale('en_US'))
collator.setAttribute(icu.UCollAttribute.NUMERIC_COLLATION, icu.UCollAttributeValue.ON)

sorted(['3 three', '1 one', '10 ten', '2 two'])
# ['1 one', '10 ten', '2 two', '3 three']

sorted(['3 three', '1 one', '10 ten', '2 two'], key=collator.getSortKey)
# ['1 one', '2 two', '3 three', '10 ten']
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62147537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档