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

Python list转dict问题:合并多个dict为单一dict

合并多个字典为单一字典的解决方法

嘿,我明白你遇到的问题了!你之前尝试用{newlist[0], newlist[1], newlist[2]}的方式转换,确实会失败——因为在Python里,用大括号直接包裹多个字典会创建一个集合,而字典是不可哈希的类型,不能被放入集合里,而且这也根本不是构建字典的正确方式。

下面给你几种简单可靠的方法来合并列表里的所有字典:

方法1:循环遍历+update()(兼容所有Python版本)

这是最直观且兼容性最好的方式,逐个把每个字典的键值对更新到新字典里:

list_of_dicts = [{'key1': 'val1', 'key2': 2, 'key3': 3}, 
                 {'key4': 'val4', 'key5': 5, 'key6': 6}, 
                 {'key7': 'val7', 'key8': 8, 'key9':9}]

merged_dict = {}
for d in list_of_dicts:
    merged_dict.update(d)

print(merged_dict)
# 输出: {'key1': 'val1', 'key2': 2, 'key3': 3, 'key4': 'val4', 'key5': 5, 'key6': 6, 'key7': 'val7', 'key8': 8, 'key9': 9}

方法2:字典解包(Python 3.5+)

如果你的Python版本是3.5及以上,这种写法更简洁:

merged_dict = {**list_of_dicts[0], **list_of_dicts[1], **list_of_dicts[2]}

如果列表里的字典数量不确定,也可以结合循环解包:

merged_dict = {}
for d in list_of_dicts:
    merged_dict = {**merged_dict, **d}

方法3:functools.reduce+字典合并运算符(Python 3.9+)

Python 3.9引入了|运算符来合并字典,搭配reduce可以快速处理列表:

from functools import reduce

merged_dict = reduce(lambda a, b: a | b, list_of_dicts)

注意事项

如果列表里的字典存在重复键,后面的字典会覆盖前面的键值对,这是所有合并方法的默认行为,比如如果第一个字典有'key1': 'old',第三个字典有'key1': 'new',最终结果里'key1'的值会是'new'。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:45:52