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

如何根据字典字段值对字典列表排序并生成对应奖牌标识?

实现代码

# 原始数据
a = [{"name":"XXX", "punch":20},{"name":"yyy", "punch":19},{"name":"zzz", "punch":5}]
# 按punch升序排序,punch越小排名越靠前
sorted_by_punch = sorted(a, key=lambda x: x["punch"])
# 排名对应奖牌顺序:第1名Gold、第2名Silver、第3名Bronze
medal_map = ["Gold", "Silver", "Bronze"]

# 生成结果
result = []
for idx, item in enumerate(sorted_by_punch):
    result.append({
        "name": item["name"].lower(),
        "medal": medal_map[idx]
    })

# 若需要和你给出的预期结果顺序完全一致(按奖牌从铜到金排序),可额外添加以下排序逻辑
result = sorted(result, key=lambda x: medal_map.index(x["medal"]), reverse=True)

print(result)

逻辑说明

  • 首先对原始列表按punch字段升序排列,保证数值越小的元素排在越前面,对应排名越高
  • 按排名顺序定义奖牌列表,排序后第0位(第1名)取Gold,第1位(第2名)取Silver,第2位(第3名)取Bronze
  • 遍历排序后的列表生成结果,同时将name字段统一转为小写,匹配预期输出格式
  • 额外排序步骤可选,用于调整结果列表顺序和你给出的示例完全对齐

输出结果

[{'name': 'xxx', 'medal': 'Bronze'}, {'name': 'yyy', 'medal': 'Silver'}, {'name': 'zzz', 'medal': 'Gold'}]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 07:36:03