嵌套列表排序 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]]
我是 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]]