按每个子列表的第一个元素对列表列表进行排序

时间:2016-04-30 13:31:48

标签: python

如何根据每个列表的第一个元素对列表列表进行排序?

例如,给出这个未排序的列表:

[[1,4,7],[3,6,9],[2,59,8]]

排序结果应为:

[[1,4,7],[2,59,8],[3,6,9]]

3 个答案:

答案 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]]