python字典不支持+运算符,但可通过|(3.9+)、{d1,d2}或update()实现键值覆盖合并;数值型可用Counter累加;自定义逻辑需手动遍历处理。

Python 字典本身不支持直接用 + 相加(会报 TypeError),但有多种实用方式实现“合并”或“累加”效果,关键看你想怎么处理重复键:
用 update() 或 |(合并,后值覆盖前值)
这是最常见的“相加”理解——把两个字典合在一起,相同 key 的值以右边字典为准:
- Python 3.9+ 推荐用管道符
|(返回新字典,原字典不变):
d1 = {'a': 1, 'b': 2} d2 = {'b': 3, 'c': 4} result = d1 | d2 # {'a': 1, 'b': 3, 'c': 4}
- 兼容旧版本可用
update()(修改原字典)或{**d1, **d2}(解包生成新字典):
d1 = {'a': 1, 'b': 2} d2 = {'b': 3, 'c': 4} result = {**d1, **d2} # 同样是 {'a': 1, 'b': 3, 'c': 4}
数值型字典按 key 相加(同 key 值相加,非覆盖)
如果字典的 value 都是数字,你希望相同 key 的值累加(比如统计计数),可以用 collections.Counter:
from collections import Counter <p>d1 = {'a': 1, 'b': 2} d2 = {'b': 3, 'c': 4} result = dict(Counter(d1) + Counter(d2)) # {'a': 1, 'b': 5, 'c': 4}
注意:Counter 只适合数值类型;非数字 value 会出错。
PHP高级开发技巧与范例
472
PHP是一种功能强大的网络程序设计语言,而且易学易用,移植性和可扩展性也都非常优秀,本书将为读者详细介绍PHP编程。 全书分为预备篇、开始篇和加速篇三大部分,共9章。预备篇主要介绍一些学习PHP语言的预备知识以及PHP运行平台的架设;开始篇则较为详细地向读者介绍PKP语言的基本语法和常用函数,以及用PHP如何对MySQL数据库进行操作;加速篇则通过对典型实例的介绍来使读者全面掌握PHP。 本书
472 立即学习“Python免费学习笔记(深入)”;
通用手动累加(支持任意类型 + 自定义逻辑)
想更灵活控制(比如列表拼接、字符串连接、取最大值等),推荐用循环或字典推导:
d1 = {'a': [1], 'b': 2} d2 = {'a': [2, 3], 'b': 10} <h1>比如对 list 类型做 extend,数值做相加</h1><p>from collections import defaultdict merged = defaultdict(lambda: 0) # 默认值为 0,适合数值累加</p><p>for d in [d1, d2]: for k, v in d.items(): if isinstance(v, list): merged[k] = merged.get(k, []) + v else: merged[k] += v</p><h1>结果:{'a': [1, 2, 3], 'b': 12}</h1><p>
小提醒
基本上就这些。选哪种方式,取决于你字典里存的是什么,以及遇到重复 key 时想怎么处理。