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

Python提取列表中字典并排序后如何输出无单引号的格式化内容

实现方案

方案1:给字典新增名称字段(最直观易用)

原有字典没有存储对应国家名称,无法直接输出Spain/Iran标识,先给每个字典补充name字段,再按规则排序输出即可:

# 补充name字段存储国家名
Iran = {'name': 'Iran', 'wins': 1, 'loses': 1, 'draws': 1, 'goal difference': 0, 'points': 4}
Spain = {'name': 'Spain', 'wins': 1, 'loses': 0, 'draws': 2, 'goal difference': 2, 'points': 5}
my_team = [Iran, Spain]

# 原排序逻辑不变
sorted_team = sorted(my_team, key=lambda y: (y['points'], y['wins']), reverse=True)

# 按格式输出,无单引号
for team in sorted_team:
    print(f"{team['name']}  wins:{team['wins']} , loses:{team['loses']} , draws:{team['draws']} , goal difference:{team['goal difference']} , points:{team['points']}")

方案2:不修改原字典结构的实现

如果不想改动原有字典内容,可以通过id映射关联国家名和字典对象:

Iran = {'wins': 1, 'loses': 1, 'draws': 1, 'goal difference': 0, 'points': 4}
Spain = {'wins': 1, 'loses': 0, 'draws': 2, 'goal difference': 2, 'points': 5}
my_team = [Iran, Spain]

# 建立字典对象和国家名的映射关系
name_mapping = {id(Iran): 'Iran', id(Spain): 'Spain'}

# 排序
sorted_team = sorted(my_team, key=lambda y: (y['points'], y['wins']), reverse=True)

# 输出
for team in sorted_team:
    team_name = name_mapping[id(team)]
    print(f"{team_name}  wins:{team['wins']} , loses:{team['loses']} , draws:{team['draws']} , goal difference:{team['goal difference']} , points:{team['points']}")

两种方案运行后输出的结果都和要求的格式完全一致,没有额外单引号。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 20:06:03