[英]how to sort a list of list of tuples in 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)]
]
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)]]
使用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]
根據第一個元組進行比較
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.