首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否按字符串的顺序对非拉丁字符集进行排序?

是否按字符串的顺序对非拉丁字符集进行排序?
EN

Stack Overflow用户
提问于 2016-03-15 07:45:49
回答 2查看 160关注 0票数 0

我正在使用下面的代码表单排序:

代码语言:javascript
运行
复制
letters = '세븐일레븐'
old = [('세븐', 8), ('븐', 2), ('일', 5), ('레', 4)]
new = sorted(old, key=lambda x: letters.index(x[0]))

对于非拉丁字符,输出与输入相同:

代码语言:javascript
运行
复制
[('세븐', 8), ('븐', 2), ('일', 5), ('레', 4)]

我所期待的是:

代码语言:javascript
运行
复制
[('세븐', 8), ('일', 5), ('레', 4), ('븐', 2)]
EN

回答 2

Stack Overflow用户

发布于 2016-03-15 07:51:17

排序没有问题。请注意,字母'븐‘在字母字符串中出现了两次。由于index返回该字母的第一个索引,因此letters.index('븐')的计算结果为1,这将赋予它较高的优先级。

票数 1
EN

Stack Overflow用户

发布于 2016-03-15 07:54:33

为什么期望'일''븐'之前排序?'븐'letters中的第二个字符;index将返回它找到的第一个实例。

如果目标是区别对待特定序列,则需要将letters定义为您关心的完整字符串的list,而不是单个平面str,例如:

代码语言:javascript
运行
复制
letters = ['세븐', '일', '레', '븐']

然后,index调用会将'세븐'视为独立于'븐',您将获得预期的输出顺序。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36000178

复制
相关文章

相似问题

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