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

如何优雅合并列表中的多个Python字典?

合并字典列表的优雅实现方式

你已经通过循环update的方式实现了字典列表的合并,这里提供几种更简洁优雅的实现方式,效果和你的循环逻辑完全一致(后续字典的重复键会覆盖前面的):

方法1:字典解包生成器(Python 3.5+)

利用字典解包语法,一行代码完成合并:

merged_dict = {**d for d in my_dict}

方法2:展开键值对构造字典(全Python版本兼容)

通过遍历所有字典的键值对,直接构造新字典,兼容性最好:

merged_dict = dict(item for d in my_dict for item in d.items())

方法3:Python 3.9+ 用|运算符结合reduce

Python 3.9新增了字典合并运算符|,配合functools.reduce可以依次合并所有字典:

from functools import reduce
merged_dict = reduce(lambda a, b: a | b, my_dict)

方法4:collections.ChainMap(适合只读场景)

如果不需要生成新字典,只是想统一访问所有字典的键,可以用ChainMap创建一个视图(不会复制数据,效率更高);如果需要转为真实字典,再转成dict即可:

from collections import ChainMap
# 反转列表是为了让后续字典的键优先级更高,和update逻辑一致
merged_chain = ChainMap(*reversed(my_dict))
# 转为真实字典
merged_dict = dict(merged_chain)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 16:43:22