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

Python 字典本身不支持直接用 + 相加(会报 TypeError),但有多种实用方式实现“合并”或“累加”效果,关键看你想怎么处理重复键:
update() 或 |(合并,后值覆盖前值)这是最常见的“相加”理解——把两个字典合在一起,相同 key 的值以右边字典为准:
|(返回新字典,原字典不变):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}
如果字典的 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是一种功能强大的网络程序设计语言,而且易学易用,移植性和可扩展性也都非常优秀,本书将为读者详细介绍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>d1 + d2 会直接报错,别试| 或 {**d1, **d2} 是浅合并,嵌套字典不会递归合并deepmerge基本上就这些。选哪种方式,取决于你字典里存的是什么,以及遇到重复 key 时想怎么处理。
以上就是python字典如何相加的详细内容,更多请关注php中文网其它相关文章!
python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号