【发布时间】:2018-01-26 20:44:31
【问题描述】:
我有一个文件名列表,每个文件名都以前导数字开头:
10_file
11_file
1_file
20_file
21_file
2_file ...
我需要按这个顺序排列:
1_file
10_file
11_file
2_file
21_file
22_file ...
如果它们只是没有下划线的字符串形式的数字 ('1'),我可以使用 sorted() 对它们进行排序。我尝试了具有不同键属性的不同排序方法,还有模块“natsort”,但没有结果。我必须为此编写自己的算法吗?也许我可以提取前导数字并使用它们进行排序?
更新所需列表以更正列表
【问题讨论】:
-
文件名前的最大数字是多少?
-
视情况而定。最多 120 个。
-
好的,所有文件名都以
_file结尾吗? -
不,那是不同字符的不同字符串。但在每种情况下,前导数字后面都有一个下划线。
-
您能解释一下为什么
11_file和12_file在2_file之后按照您想要的排序顺序吗?
标签: python string sorting alphabetical-sort