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

如何查找字典中同名称对应条目并保留得分最高的记录?

解决思路
  • 第一步:创建临时字典按name分组,记录每个name对应的最高分数和对应id
  • 第二步:遍历所有id和分数,更新临时字典的最高记录
  • 第三步:用临时字典的结果生成过滤后的最终id_score_dict
可直接运行的代码实现
id_score_dict = {'abc': 1, 'bcd': 2, 'mnl': 3, 'pqr': 0}
name_dict = {'abc': 'John', 'bcd': 'Mary', 'mnl': 'Cathy', 'pqr': 'John'}

# 临时字典,key为name,value存储(当前最高score, 对应的id)
name_best = {}

for _id, score in id_score_dict.items():
    name = name_dict[_id]
    # 当name无记录,或当前分数高于已记录的最高分时更新
    if name not in name_best or score > name_best[name][0]:
        name_best[name] = (score, _id)

# 重构得到最终的id_score_dict
id_score_dict = {_id: score for score, _id in name_best.values()}

print(id_score_dict)
# 输出结果:{'abc': 1, 'bcd': 2, 'mnl': 3}
补充说明

如果遇到同name、同最高score的场景,上述逻辑会默认保留先遍历到的id;如果需要保留所有同分最高的条目,只需把临时字典的value改成列表,存储所有符合条件的id即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 01:12:02