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

如何删除列表中重复键的字典元素并保留同键下值最大的项

实现方法

核心思路分两步:首先遍历所有字典统计每个键对应的最大值,再将统计结果转换为目标格式的字典列表。

基础实现(无第三方依赖,兼容所有Python版本)

a = [{1: 2}, {1: 3}, {2: 5}, {2: 3}]
# 临时字典存储每个键对应的最大值
max_record = {}
for item in a:
    # 取出当前单键字典的键和值
    key, val = next(iter(item.items()))
    # 键不存在或者当前值更大时更新记录
    if key not in max_record or val > max_record[key]:
        max_record[key] = val
# 转换为目标格式
result = [{k: v} for k, v in max_record.items()]
print(result)
# 输出:[{1: 3}, {2: 5}]

扩展说明

如果你的列表中存在包含多个键的字典,只需修改遍历逻辑,对每个字典内的所有键值对单独判断即可:

a = [{1: 2, 3: 4}, {1: 3}, {2: 5, 3: 1}, {2: 3}]
max_record = {}
for item in a:
    for key, val in item.items():
        if key not in max_record or val > max_record[key]:
            max_record[key] = val
result = [{k: v} for k, v in max_record.items()]
# 输出:[{1: 3}, {3: 4}, {2: 5}]

Python 3.7及以上版本默认保留字典的插入顺序,最终输出中键的顺序和原列表中键第一次出现的顺序完全一致,符合需求预期。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 01:39:03