Python:按“列”对列表进行排序

Mar*_*son 5 python sorting

如何按“列”对列表列表进行排序,即按每个列表的第 i 个元素对列表进行排序?

例如:

a=[['abc',5],
   ['xyz',2]]

print sortByColumn(a,0)

[['abc',5],
 ['xyz',2]]

print sortByColumn(a,1)

[['xyz',2],
 ['abc',5]]
Run Code Online (Sandbox Code Playgroud)

The*_*nse 6

您可以使用sortkey参数等于 a lambda function

sorted(a, key=lambda x: x[0])
[['abc', 5], ['xyz', 2]]

sorted(a, key=lambda x: x[1])
[['xyz', 2], ['abc', 5]]
Run Code Online (Sandbox Code Playgroud)

另一种方法是使用keywith operator.itemgetter,它创建所需的 lambda 函数:

from operator import itemgetter
sorted(a, key=itemgetter(1))
[['xyz', 2], ['abc', 5]]
Run Code Online (Sandbox Code Playgroud)