Python:按“列”对列表进行排序[重复]

Posted

技术标签:

【中文标题】Python:按“列”对列表进行排序[重复]【英文标题】:Python: sorting a list by "column" [duplicate] 【发布时间】: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]]

【问题讨论】:

这里有一个类似的问题[How to sort (list/tuple) of lists/tuples?][1] [1]:***.com/questions/3121979/… 【参考方案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]]

【讨论】:

以上是关于Python:按“列”对列表进行排序[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在Python中对字符串列表进行排序[重复]

按列表的属性对列表进行排序[重复]

按属性对对象列表进行排序[重复]

按两个字段对 Python 列表进行排序

python:按子列表中的项目对列表列表进行排序[重复]

按特定键的降序对字典列表进行排序[重复]