有没有办法使用 sort() 方法或任何其他方法按列对列表进行排序?假设我有 list :
[
[John,2],
[Jim,9],
[Jason,1]
]
我想对其进行排序,使其看起来像这样:
[
[Jason,1],
[John,2],
[Jim,9],
]
最好的方法是什么?
编辑:
现在我遇到了索引超出范围错误。我有一个二维数组,可以说 1000 行 b 3 列。我想根据第三列对其进行排序。这是正确的代码吗?
sorted_list = sorted(list_not_sorted, key=lambda x:x[2])
最佳答案
是的。 sorted
内置接受 key
参数:
sorted(li,key=lambda x: x[1])
Out[31]: [['Jason', 1], ['John', 2], ['Jim', 9]]
注意 sorted
返回一个新列表。如果您想就地排序,请使用列表的 .sort
方法(也方便地接受 key
参数)。
或者,
from operator import itemgetter
sorted(li,key=itemgetter(1))
Out[33]: [['Jason', 1], ['John', 2], ['Jim', 9]]
关于python - 如何按列对多维数组进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20183069/