小编典典

如何按列对多维数组排序?

python

有没有一种方法可以使用sort()方法或任何其他方法按列对列表进行排序?可以说我有清单:

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

阅读 210

收藏
2020-12-20

共1个答案

小编典典

是。该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 Wiki上阅读更多内容

2020-12-20