嵌套列表排序 python 3

Nested list sort python 3

我是 python 初学者 -- headbangin'。这是一个非常基本的问题,我似乎找不到任何直接的答案,无论是使用 google 还是 Whosebug。

问题: 我有一个嵌套列表:

 l = [
 [1,4,3,n]
 [2,2,4,n]
 [3,1,5,n]
 ]

我想按从小到大的第二个值对整个列表进行排序。我最终将按每个嵌套列表的第三个值...和第 n 个值再次对列表进行排序。

如何根据第二个、第三个、第 N 个值进行排序?

提到了一个密钥,但经常使用 "key=lambda",这让我更加困惑。

编辑:谢谢你们的帮助。我能够使用你的建议来解决手头的问题。我会投票给你,但显然,我还不能以那种形式表达我的感谢。总有一天我会 return 来提升你的声望。

你可以这样试试,

>>> l = [[1,4,3], [2,2,4], [3,1,5]]
>>> sorted(l, key=lambda x: x[1])
[[3, 1, 5], [2, 2, 4], [1, 4, 3]]

或:

>>> l.sort(key=lambda x: x[1])
>>> l
[[3, 1, 5], [2, 2, 4], [1, 4, 3]]

也可以使用运算符

operator.itemgetter(1) 中,您指示要排序的索引。因此,在这种情况下,我们指定 1 这是第二项。

import operator

l = [[1,4,3], [2,2,4], [3,1,5]]
print(sorted(l, key=operator.itemgetter(1)))

输出:

[[3, 1, 5], [2, 2, 4], [1, 4, 3]]