![](/img/trans.png)
[英]Python . How to sort elements of sub-list if second elements are equal sort the sub-lists by first element
[英]Sorting list of lists by the first element of each sub-list
如何根據每個列表的第一個元素對列表列表進行排序?
例如,給出這個未排序的列表:
[[1,4,7],[3,6,9],[2,59,8]]
排序結果應該是:
[[1,4,7],[2,59,8],[3,6,9]]
使用排序函數以及將匿名函數作為值傳遞給 key 參數。 key=lambda x: x[0]
將根據每個子列表中的第一個元素進行排序。
>>> lis = [[1,4,7],[3,6,9],[2,59,8]]
>>> sorted(lis, key=lambda x: x[0])
[[1, 4, 7], [2, 59, 8], [3, 6, 9]]
如果您按嵌套列表的第一個元素排序,則可以簡單地使用list.sort()
方法。
>>> lis = [[1,4,7],[3,6,9],[2,59,8]]
>>> lis.sort()
>>> lis
[[1, 4, 7], [2, 59, 8], [3, 6, 9]]
如果要進行反向排序,可以在lis.reverse()
之后使用lis.sort()
>>> lis.reverse()
>>> lis
[[3, 6, 9], [2, 59, 8], [1, 4, 7]]
li = [[1,4,7],[3,6,9],[2,59,8]]
li.sort(key=lambda x: int(x[0]))
不過,這將就地排序更改原始列表。 如果要保留原始列表,最好使用:
sorted(li, key = lambda x: int(x[0]))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.