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

Python中使用**解包合并多个字典仅输出单个字典问题求助

问题原因

你遇到的输出结果是Python字典**解包合并的固有规则导致的:

  • Python字典的键具有唯一性,使用{**dict1, **dict2, **dict3}语法合并字典时,会按照从左到右的顺序逐个插入键值对,如果出现重复键,后插入的键值对会直接覆盖先插入的同名键值对
  • 你提供的三个atom字典的键完全一致,均为first_name、last_name、City,因此合并时atom2的内容会覆盖atom1的内容,atom3的内容又会覆盖atom2的内容,最终变量p就只剩下了最后一个字典atom3的内容。
  • 如果你的三个字典不存在重复键,原写法是可以正常合并所有键值对的。
常见场景解决方案

场景1:需要保留三个字典的独立信息

如果三个字典是三条独立的原子数据,不需要合并为单个单层字典,直接存入列表即可:

p = [atom1, atom2, atom3]
print(p)

输出会完整保留三个字典的所有内容。

场景2:需要合并相同键的所有值为列表

如果需要把同个键对应的三个值全部收集起来,可以用以下写法实现:

from collections import defaultdict

p = defaultdict(list)
for d in [atom1, atom2, atom3]:
    for k, v in d.items():
        p[k].append(v)

# 可选:转换为普通字典
p = dict(p)
print(p)

输出结果为:

{'first_name': ['Alfa', 'Beta', 'Gama'], 'last_name': ['A.', 'B.', 'G.'], 'City': ['Osaka', 'kyoto', 'L.A.']}

内容的提问来源于stack exchange,提问作者Sharman00.0

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 00:12:02