我是一个蟒蛇初学者 - headbangin'。这是一个非常基本的问题,我似乎无法使用google或StackOverFlow找到任何直接的答案。
问题: 我有一个嵌套列表:
l = [
[1,4,3,n]
[2,2,4,n]
[3,1,5,n]
]
我想按照从最小到最大的第二个值对整个列表进行排序。我将最终通过第三个值...和每个嵌套列表的第n个值再次对列表进行排序。
如何根据第二,第三,第N个值进行一次排序?
提到了一个密钥,但" key = lambda"经常被使用,这让我更加困惑。
编辑:谢谢你们的帮助。我能够用你的建议来解决手头的问题。我会赞成你,但显然,我还不能以这种形式表达我的谢意。有一天我会回来给你你的声誉。答案 0 :(得分: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]]
答案 1 :(得分: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]]