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

Python按积分、胜场、队名字典序排序球队列表结果不符问题

问题原因

你实际运行代码时应该为了实现积分、胜场从高到低排序,给sorted添加了reverse=True参数(你贴出的代码片段省略了该参数)。reverse=True会对key元组的所有字段统一应用降序规则,导致原本需要升序排列的队名字段也被反转,所以首字母更靠后的Portugal反而排在了Iran前面,和预期不符。

修正方案

调整key的构造逻辑,对需要降序的数值字段取负值,直接使用sorted默认的升序规则即可,无需加reverse=True参数。这种混合排序方向的场景lambda写法更灵活,修正后代码如下:

a = sorted(a, key=lambda x: (-x[-1], -x[1], x[0]))

运行后即可得到预期输出:

[['Spain', 1, 0, 2, 2, 5], ['Iran', 1, 1, 1, 0, 4], ['Portugal', 1, 1, 1, 0, 4], ['Morocco', 1, 2, 0, -2, 3]]

如果需要用itemgetter实现,需要额外处理排序方向,不如lambda写法简洁,更推荐上述lambda方案。

内容的提问来源于stack exchange,提问作者M.Arya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 21:18:00