簡體   English   中英

按每個子列表的第一個元素對列表列表進行排序

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

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