【问题标题】:Python: sorting a list by "column" [duplicate]Python:按“列”对列表进行排序[重复]
【发布时间】:2015-11-14 22:50:58
【问题描述】:

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

例如:

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

print sortByColumn(a,0)

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

print sortByColumn(a,1)

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

【问题讨论】:

标签: python sorting


【解决方案1】:

您可以使用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]]

【讨论】:

    猜你喜欢
    • 2014-05-28
    • 1970-01-01
    • 2013-08-11
    • 2015-09-21
    • 1970-01-01
    • 1970-01-01
    • 2019-11-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多