如何按给定索引处的元素对列表/列表/元组进行排序?

2022-09-05 01:18:58

我在列表列表或元组列表中有一些数据,如下所示:

data = [[1,2,3], [4,5,6], [7,8,9]]
data = [(1,2,3), (4,5,6), (7,8,9)]

我想按子集中的第二个元素排序。含义,按 2,5,8 排序,其中 来自 ,来自 。执行此操作的常用方法是什么?我应该在列表中存储元组还是列表?2(1,2,3)5(4,5,6)


答案 1
sorted_by_second = sorted(data, key=lambda tup: tup[1])

艺术

data.sort(key=lambda tup: tup[1])  # sorts in place

默认排序模式为升序。要按降序排序,请使用选项 reverse=True

sorted_by_second = sorted(data, key=lambda tup: tup[1], reverse=True)

艺术

data.sort(key=lambda tup: tup[1], reverse=True)  # sorts in place

答案 2
from operator import itemgetter
data.sort(key=itemgetter(1))

推荐