python字典如何相加

1次阅读

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 会出错。

python字典如何相加

PHP高级开发技巧与范例

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

python字典如何相加 472

查看详情 python字典如何相加

立即学习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 时想怎么处理。

text=ZqhQzanResources