如果我有一個列表python如何對2個值進行排序
listOfFiles = [<str>,<intA>,<intB>]
如何先用intA然後用intB對這個列表進行排序?
最終結果看起來像
<str>,1,1
<str>,1,2
<str>,1,3
<str>,2,1
<str>,2,2
etc
如果我有一個列表python如何對2個值進行排序
listOfFiles = [<str>,<intA>,<intB>]
如何先用intA然後用intB對這個列表進行排序?
最終結果看起來像
<str>,1,1
<str>,1,2
<str>,1,3
<str>,2,1
<str>,2,2
etc
使用的化合物鍵(或更確切地說,一個序列作爲一個鍵)。
listOfFiles.sort(key=operator.itemgetter(1, 2))
Python列表排序是在適當的位置完成的,在2.4(我相信它可能是2.5)後保證穩定。這意味着您可以排序像這樣,應該得到你想要的結果:
listOfFiles.sort(key = lambda x: x[2])
listOfFiles.sort(key = lambda x: x[1])
我相信你確實有一個列表的列表或元組的列表。如果不是,請提供一個更完整的數據結構示例。
我只會做lambda x [1],x [2],所以你只需要排序一次。 – recursive 2011-04-14 18:39:18
這也適用於:
listOfFiles.sort(key=lambda x: (x[1], x[2]))
'operator'救援! – jathanism 2011-04-14 18:39:58
哇,不知道你可以傳遞多個參數給'operator.itemgetter'。 – 2011-04-15 08:43:58