有没有一种方法可以使用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])
是。该sorted内置接受key的说法:
sorted
key
sorted(li,key=lambda x: x[1]) Out[31]: [['Jason', 1], ['John', 2], ['Jim', 9]]
请注意,sorted将返回一个新列表。如果要就地排序,请使用.sort列表的方法(也可以方便地接受key参数)。
.sort
或者,
from operator import itemgetter sorted(li,key=itemgetter(1)) Out[33]: [['Jason', 1], ['John', 2], ['Jim', 9]]
在python Wiki上阅读更多内容。