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

Python 按每个子列表的第一个元素对列表进行排序,python,Python,如何根据每个列表的第一个元素对列表进行排序 例如,给出此未排序列表: [[1,4,7],[3,6,9],[2,59,8]] 排序结果应为: [[1,4,7],[2,59,8],[3,6,9]] 使用排序函数并将匿名函数作为值传递给键参数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],[3,6,9],[2,59,8]]
排序结果应为:

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

使用排序函数并将匿名函数作为值传递给键参数
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.sort()之后使用
lis.reverse()

这将在更改原始列表时进行排序。如果要保留原始列表,最好使用:

sorted(li, key = lambda x: int(x[0]))

operator.itemgetter(0)
您应该避免使用
l
作为变量名,请参阅。@AvinashRaj如果要按降序排序,该怎么办?@NitishKumarPal您可以反转列表排序的结果。
sorted(lis,key=lambda x:x[0])[::-1]
@NitishKumarPal或者您也可以执行:
排序(lis key=lambda x:-x[0])
简单明了的使用
排序(d)
?这是
li
而不是
l1
我想是打字错误
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]))