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

如何按多优先级条件排序嵌套字典:积分降序、胜场次之、队名升序

嵌套字典多优先级排序实现

我们需要对球队数据的嵌套字典按指定优先级完成排序,规则如下:

  • 优先按照points(积分)字段降序排列
  • 若多支队伍积分相同,按照wins(胜场)字段降序排列
  • 若积分、胜场均相同,按照队伍名称的字母顺序升序排列

输入示例

team_data = {
'England': {'wins': 1, 'loses': 1, 'draws': 1, 'goal difference': 0, 'points': 4}, 
'Spain': {'wins': 1, 'loses': 0, 'draws': 2, 'goal difference': 2, 'points': 5}, 
'Belgium': {'wins': 1, 'loses': 1, 'draws': 1, 'goal difference': 0, 'points': 4}, 
'Argentina': {'wins': 1, 'loses': 2, 'draws': 0, 'goal difference': -2, 'points': 3}
}

实现代码

Python可直接利用sorted函数的自定义key特性实现多优先级排序,代码如下:

# 按优先级构造排序key:负积分(实现降序)、负胜场(实现降序)、队名(实现升序)
sorted_teams = sorted(team_data.items(), key=lambda x: (-x[1]['points'], -x[1]['wins'], x[0]))

# 按要求格式打印输出
for team, info in sorted_teams:
    print(f"{team}  wins:{info['wins']} , loses:{info['loses']} , draws:{info['draws']} , goal difference:{info['goal difference']} , points:{info['points']}\n")

输出结果

Spain  wins:1 , loses:0 , draws:2 , goal difference:2 , points:5

Belgium  wins:1 , loses:1 , draws:1 , goal difference:0 , points:4

England  wins:1 , loses:1 , draws:1 , goal difference:0 , points:4

Argentina  wins:1 , loses:2 , draws:0 , goal difference:-2 , points:3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 22:45:07