首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Python中的多个子字符串排序字符串

用Python中的多个子字符串排序字符串
EN

Stack Overflow用户
提问于 2020-09-17 12:11:40
回答 1查看 438关注 0票数 2

我有一个文件名列表,格式如下:<number>-<number>

例子如下:

代码语言:javascript
复制
0-0
1-0
1-1
1-2
1-3

...

31-0
31-1
31-2

我想把它们作为一个排序的列表来阅读。当我在sort()输出上做listdir()时,10-x就在1-x系列之后出现了。

当我做.sort(key=lambda x: int(x.split('-')[0]))时,我得到第一个数字排序,但是第二个数字(连字符后面的那个没有排序)。示例:["21-3", "21-0", "21-2", "21-1"]

那么,如何确保我可以使用文件名读取我的文件,文件名按照文件名中连字符之前的数字排序,也可以根据文件名中的第二个数字(连字符后面的数字)进行排序?

期望产出:

["0-0", "1-0", "1-1", "1-2", ... "31-0", "31-1", "31-2", "31-3"]

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-17 12:16:33

代码语言:javascript
复制
items = ["31-1", "31-0", "0-0", "0-2", "0-1"]

print(sorted(items, key=lambda s: tuple(map(int, s.split("-")))))

输出:

代码语言:javascript
复制
['0-0', '0-1', '0-2', '31-0', '31-1']
>>> 
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63937795

复制
相关文章

相似问题

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