如何根据每个列表的第一个元素对列表列表进行排序?
例如,给出这个未排序的列表:
[[1,4,7],[3,6,9],[2,59,8]]
Run Code Online (Sandbox Code Playgroud)
排序结果应为:
[[1,4,7],[2,59,8],[3,6,9]]
Run Code Online (Sandbox Code Playgroud)
小智 15
如果您按嵌套列表的第一个元素排序,则可以简单地使用list.sort()方法。
>>> lis = [[1,4,7],[3,6,9],[2,59,8]]
>>> lis.sort()
>>> lis
[[1, 4, 7], [2, 59, 8], [3, 6, 9]]
Run Code Online (Sandbox Code Playgroud)
如果要进行反向排序,可以使用lis.reverse()afterlis.sort()
>>> lis.reverse()
>>> lis
[[3, 6, 9], [2, 59, 8], [1, 4, 7]]
Run Code Online (Sandbox Code Playgroud)
Avi*_*Raj 13
使用排序函数以及将匿名函数作为值传递给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]]
Run Code Online (Sandbox Code Playgroud)
小智 7
li = [[1,4,7],[3,6,9],[2,59,8]]
li.sort(key=lambda x: int(x[0]))
Run Code Online (Sandbox Code Playgroud)
This will sort in place changing the original list though. If you want to keep the original list, it is better to use:
sorted(li, key = lambda x: int(x[0]))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10305 次 |
| 最近记录: |