python字典如何相加

舞夢輝影
发布: 2025-12-05 23:43:02
原创
149人浏览过
Python字典不支持+运算符,但可通过|(3.9+)、{d1,d2}或update()实现键值覆盖合并;数值型可用Counter累加;自定义逻辑需手动遍历处理。

python字典如何相加

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高级开发技巧与范例
PHP高级开发技巧与范例

PHP是一种功能强大的网络程序设计语言,而且易学易用,移植性和可扩展性也都非常优秀,本书将为读者详细介绍PHP编程。 全书分为预备篇、开始篇和加速篇三大部分,共9章。预备篇主要介绍一些学习PHP语言的预备知识以及PHP运行平台的架设;开始篇则较为详细地向读者介绍PKP语言的基本语法和常用函数,以及用PHP如何对MySQL数据库进行操作;加速篇则通过对典型实例的介绍来使读者全面掌握PHP。 本书

PHP高级开发技巧与范例 472
查看详情 PHP高级开发技巧与范例

立即学习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在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号