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

不使用update()方法合并两个字典的新型实现方案咨询

Python 不使用update()方法合并两个字典的新型实现方式

以下方法均默认处理规则为:两个字典存在重复键时,靠后字典的键值会覆盖靠前字典的对应键值:

  • Python 3.5及以上版本可用:字典解包语法
    这是目前兼容性最好的轻量合并写法,直接通过**解包两个字典到新字典中即可:
    dict1 = {"a": 1, "b": 2}
    dict2 = {"b": 3, "c": 4}
    merged_dict = {**dict1, **dict2}
    # 合并结果:{'a': 1, 'b': 3, 'c': 4}
    
    该方法也支持同时合并3个及以上的字典,只需在大括号内按顺序添加对应字典的解包表达式即可。
  • Python 3.9及以上版本可用:字典合并运算符
    Python 3.9正式引入了字典专属的合并运算符|,写法更简洁直观:
    dict1 = {"a": 1, "b": 2}
    dict2 = {"b": 3, "c": 4}
    merged_dict = dict1 | dict2
    # 合并结果:{'a': 1, 'b': 3, 'c': 4}
    
    如果需要将第二个字典的内容直接合并到第一个字典中(类似update()的原地修改效果),可以使用就地合并运算符|=:
    dict1 |= dict2
    # 此时dict1已被修改为合并后的结果
    
  • 支持自定义合并逻辑:字典推导式写法
    如果需要自定义重复键的处理规则(比如数值相加、列表拼接等),可以用字典推导式实现,无需依赖特定Python版本:
    dict1 = {"a": 1, "b": 2}
    dict2 = {"b": 3, "c": 4}
    # 默认覆盖规则的写法
    merged_dict = {k: v for d in [dict1, dict2] for k, v in d.items()}
    # 自定义重复键值相加的写法示例
    merged_custom = {k: dict1.get(k, 0) + dict2.get(k, 0) for k in dict1.keys() | dict2.keys()}
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 02:36:05