py2 对中文是怎么排序的?

2021-01-27 11:14:43 +08:00
 oldbird

没找到规律

1530 次点击
所在节点    Python
7 条回复
frostming
2021-01-27 12:32:27 +08:00
通过 unicode 编码值来排序的

sorted('中华人民共和国', key=ord)
frostming
2021-01-27 12:35:12 +08:00
哦你说 py2,如果是 native str,同样是通过字节编码值来排序的,如果是 unicode 则和 py3 一样
AoEiuV020
2021-01-28 10:43:54 +08:00
希望是什么规律?按拼音首字母排序?
oldbird
2021-02-03 17:16:25 +08:00
@AoEiuV020 希望和 WINDOWS 文件浏览器里的排序一样
AoEiuV020
2021-02-03 17:33:53 +08:00
@oldbird 特地搜了一下,windows 是有复杂逻辑的,而且不同版本还不一样,
https://www.winhelponline.com/xp/xpsortorder.htm
毕竟人家是操作系统而不是编程语言,直接对比字符串排序可能有点 low,
AoEiuV020
2021-02-03 17:36:05 +08:00
win api 有提供多种不同排序方法,这个应该是系统默认的,
https://docs.microsoft.com/zh-cn/windows/win32/api/shlwapi/nf-shlwapi-strcmplogicalw?redirectedfrom=MSDN
bmxbmx3
2021-03-07 15:27:32 +08:00
pypi 的 cn_sort 库应该可以的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/748829

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX