[英]Sorting strings by multiple substrings in Python
我有以下格式的文件名列表<number>-<number>
下面的例子:
0-0
1-0
1-1
1-2
1-3
...
31-0
31-1
31-2
我想將它們作為排序列表閱讀。 當我對listdir()
輸出執行sort()
時,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"]
items = ["31-1", "31-0", "0-0", "0-2", "0-1"]
print(sorted(items, key=lambda s: tuple(map(int, s.split("-")))))
輸出:
['0-0', '0-1', '0-2', '31-0', '31-1']
>>>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.