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

Python 3.9+ 如何仅合并另一字典中与目标字典共有的字段

仅更新已有键的字典合并实现方案(Python 3.9+)

问题背景

现有两个字典:

a = {'a': 1, 'b': 2}
b = {'b': 22, 'c': 3}

需求为将b合并到a时,仅更新a中已存在的键的值,直接忽略b中a没有的键。

方案说明

你原本的写法功能完全正确,也符合Python语法规范,唯一的可优化点是不需要生成临时的中间字典,有更简洁高效的实现:

1. 原地修改原字典(优先推荐)

直接取两个字典的共同键遍历赋值,无额外内存开销,可读性强:

for k in a.keys() & b.keys():
    a[k] = b[k]
# 运行后a的值为 {'a': 1, 'b': 22}

2. 生成新字典(不修改原a)

如果需要保留原字典的内容,可以用3.9新增的字典合并运算符实现:

new_a = a | {k: b[k] for k in a.keys() & b.keys()}

原有写法的优化说明

你之前使用的写法:

a |= {k: v for k, v in b.items() if k in a.keys()}

功能完全正常,只是字典推导式会生成一个临时的字典对象,当字典规模较大时会产生不必要的内存占用,性能略低于直接遍历共同键的方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 02:36:03