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

如何获取字典dict2相对dict1的新增内容并生成差异字典?

解决方法:找出字典副本中的新增内容

没问题,我来帮你搞定这个需求!既然dict2是dict1的副本,现在要找出dict2里新增(或修改)的内容并存到新字典里,其实分两种场景处理就好:

场景1:只找完全新增的键值对(dict1中没有的键)

如果你的需求是严格找出dict1里根本不存在的键,对应的值就是新增内容,用下面的代码就可以:

# 示例字典
dict1 = {"name": "Alice", "age": 25}
dict2 = {"name": "Alice", "age": 25, "city": "New York", "job": "Engineer"}

# 初始化存储差异的字典
added_content = {}

# 遍历dict2的所有键值对
for key, value in dict2.items():
    # 如果键不在dict1里,说明是新增的
    if key not in dict1:
        added_content[key] = value

print(added_content)  # 输出: {'city': 'New York', 'job': 'Engineer'}

嫌代码长?用字典推导式一行就能搞定:

added_content = {k: v for k, v in dict2.items() if k not in dict1}

场景2:同时包含新增键和修改过的键值对

如果你还想把dict2中原有键但值被修改的内容也算进去(毕竟副本之后可能不仅新增,还改了值),可以稍微调整判断条件:

dict1 = {"name": "Alice", "age": 25}
dict2 = {"name": "Alice Smith", "age": 25, "city": "New York"}

added_or_modified = {}

for key, value in dict2.items():
    # 键不存在,或者键存在但值不同,都纳入差异
    if key not in dict1 or dict1[key] != value:
        added_or_modified[key] = value

print(added_or_modified)  # 输出: {'name': 'Alice Smith', 'city': 'New York'}

对应的简洁版字典推导:

added_or_modified = {k: v for k, v in dict2.items() if k not in dict1 or dict1[k] != v}

这样就能根据你的实际需求,精准拿到dict2相对于dict1的差异内容啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 19:57:34