2013-04-24 95 views
-1

你如何在python如何在python中對元組列表進行排序?

排序元組的列表清單,例如:請注意,元組的最後一個要素是相同的

a = [ 

[(1, 5, 6), (2, 2, 6), (3, 6, 6)], 
[(6, 1, 3), (5, 7, 3), (4, 1, 3)], 
[(5, 7, 2), (7, 5, 2), (6, 3, 2)], 
[(9, 1, 7), (1, 5, 7), (2, 6, 7)] 

] 

我想用的元組作爲最後一個元素進行排序鑰匙。因此,預期的結果是

[ 

[(5, 7, 2), (7, 5, 2), (6, 3, 2)], 
[(6, 1, 3), (5, 7, 3), (4, 1, 3)], 
[(1, 5, 6), (2, 2, 6), (3, 6, 6)], 
[(9, 1, 7), (1, 5, 7), (2, 6, 7)] 

] 
+0

元組的最後一個元素?第一個?最後一個? – Felipe 2013-04-25 13:51:50

回答

4
In [27]: a = [ 
    ....: 
    ....: [(1, 5, 6), (2, 2, 6), (3, 6, 6)], 
    ....: [(6, 1, 3), (5, 7, 3), (4, 1, 3)], 
    ....: [(5, 7, 2), (7, 5, 2), (6, 3, 2)], 
    ....: [(9, 1, 7), (1, 5, 7), (2, 6, 7)] 
    ....: 
    ....: ] 
           # any tuple (first will do), last element 
In [28]: a.sort(key=lambda l: l[0][-1]) 

In [29]: a 
Out[29]: 
[[(5, 7, 2), (7, 5, 2), (6, 3, 2)], 
[(6, 1, 3), (5, 7, 3), (4, 1, 3)], 
[(1, 5, 6), (2, 2, 6), (3, 6, 6)], 
[(9, 1, 7), (1, 5, 7), (2, 6, 7)]] 
4

使用key參數進行排序和lambda功能

a.sort(key=lambda x: x[-1][-1]). # sorts in-place 
sorted(a, key=lambda x: x[-1][-1]). # new sorted list 

編輯:改變的第一個索引取決於你想看看什麼元組比較。即,使用x[0][-1]基於第一個元組進行比較

相關問題