You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对含混合类型元素的元组列表进行降序排序?

如何对元组列表按元组首元素降序排序?

你的问题出在sorted()函数的默认排序方向上——它默认是升序排列,而你的原始列表本身就是按元组第一个元素从小到大排列的,所以之前的代码执行后输出和原顺序一致,没有变化。

要实现你想要的降序输出(12.5 → 6.25 → 3.13),有两种简单的方法:

方法1:添加reverse=True参数

直接在sorted()里指定反转排序方向,这是最直观的方式:

a = [(3.13, ['a', 'b', 'c']), (6.25, ['d', 'e', 'f']), (12.5, ['g', 'h', 'i'])]
for i in sorted(a, key=lambda x: x[0], reverse=True):
    print(i[0])

执行这段代码后,输出就是你期望的:

12.5
6.25
3.13

方法2:对排序键取负值

通过对key函数返回的数值取负,让sorted()默认的升序逻辑变成实际的降序效果:

a = [(3.13, ['a', 'b', 'c']), (6.25, ['d', 'e', 'f']), (12.5, ['g', 'h', 'i'])]
for i in sorted(a, key=lambda x: -x[0]):
    print(i[0])

这种方法同样能得到和方法1一样的输出结果,适合偏好简洁写法的场景。

两种方法都能满足你的需求,选哪种全看个人习惯~

内容的提问来源于stack exchange,提问作者Francesco Dassisis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:45:33