嵌套列表排序python 3

4 python sorting nested list python-3.x

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

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

 l = [
 [1,4,3,n]
 [2,2,4,n]
 [3,1,5,n]
 ]
Run Code Online (Sandbox Code Playgroud)

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

如何根据第二,第三,第N个值排序?

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

编辑:谢谢你们的帮助。我能够使用您的建议来解决当前的问题。我会投票给你,但是显然,我还不能以这种形式表示感谢。我有一天会回来,给你你的声誉提高。

Ade*_*taş 5

你可以这样试试

>>> 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]]
Run Code Online (Sandbox Code Playgroud)

或者:

>>> l.sort(key=lambda x: x[1])
>>> l
[[3, 1, 5], [2, 2, 4], [1, 4, 3]]
Run Code Online (Sandbox Code Playgroud)


idj*_*jaw 5

也可以使用运算符来完成

在内部,operator.itemgetter(1)您要指示要对哪个索引进行排序。因此,在这种情况下,我们要指定1第二个。

import operator

l = [[1,4,3], [2,2,4], [3,1,5]]
print(sorted(l, key=operator.itemgetter(1)))
Run Code Online (Sandbox Code Playgroud)

输出:

[[3, 1, 5], [2, 2, 4], [1, 4, 3]]
Run Code Online (Sandbox Code Playgroud)