簡體   English   中英

在Python中按多個子字符串對字符串進行排序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM