如何根据每个列表的第一个元素对列表列表进行排序?
例如,给出这个未排序的列表:
[[1,4,7],[3,6,9],[2,59,8]]
排序结果应为:
[[1,4,7],[2,59,8],[3,6,9]]
答案 0 :(得分:8)
使用sorted函数以及将匿名函数作为值传递给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]]
答案 1 :(得分:3)
li = [[1,4,7],[3,6,9],[2,59,8]]
l1.sort(key=lambda x: int(x[0]))
这将更改原始列表。如果要保留原始列表,最好使用:
sorted(li, key = lambda x: int(x[0]))
答案 2 :(得分:1)
如果您要按嵌套列表的第一个元素进行排序,则只需使用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]]