Python:按"列排序列表"

时间:2015-08-21 05:12:13

标签: python sorting

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

例如:

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

print sortByColumn(a,0)

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

print sortByColumn(a,1)

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

1 个答案:

答案 0 :(得分:2)

您可以使用sort,其key参数等于lambda function

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

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

另一种方法是将keyoperator.itemgetter一起使用,这会创建所需的lambda函数:

from operator import itemgetter
sorted(a, key=itemgetter(1))
[['xyz', 2], ['abc', 5]]