当前位置: 代码迷 >> python >> 嵌套列表排序python 3
  详细解决方案

嵌套列表排序python 3

热度:113   发布时间:2023-06-13 13:55:56.0

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

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

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

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

如何根据第二,第三,第N值进行一次排序?

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

编辑:谢谢你们的帮助。 我能够用你的建议来解决手头的问题。 我会赞成你,但显然,我还不能以这种形式表达我的谢意。 有一天我会回来给你你的声誉。

也可以使用运算符完成

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

你可以这样试试,

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