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

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).做这件事的常用方法是什么?我应该将元组或列表存储在我的列表中吗?

推荐答案

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

Python相关问答推荐

使用unmanagedexports从Python调用的c#DLC

try 使用tensorFlow.keras.models时optree Import错误

在Python中,如何才能/应该使用decorator 来实现函数多态性?

来自ARIMA结果的模型方程

Matplotlib轮廓线值似乎不对劲

无法使用python.h文件; Python嵌入错误

如何销毁框架并使其在tkinter中看起来像以前的样子?

在Pandas 日历中插入一行

如何让 turtle 通过点击和拖动来绘制?

Pandas 填充条件是另一列

Polars LazyFrame在收集后未返回指定的模式顺序

非常奇怪:tzLocal.get_Localzone()基于python3别名的不同输出?

处理带有间隙(空)的duckDB上的重复副本并有效填充它们

如何获得每个组的时间戳差异?

把一个pandas文件夹从juyter笔记本放到堆栈溢出问题中的最快方法?

调用decorator返回原始函数的输出

如何在两列上groupBy,并使用pyspark计算每个分组列的平均总价值

Python避免mypy在相互引用中从另一个类重定义类时失败

Numpyro AR(1)均值切换模型抽样不一致性

在Docker容器(Alpine)上运行的Python应用程序中读取. accdb数据库