Python中合并两个字典的多种方法小结

作者:

文章目录
  • dict1 = {“a”: 1, “b”: 2} dict2 = {“b”: 3, “c”: 4} merged_dict = {**dict1, **dict2} print(merged_dict) # 输出: {‘a’: 1, ‘b’: 3, ‘c’: 4} 特点:创建新字典,不修改原字典 注意:重复键以最后一个字典的值为准
  • dict1 = {“a”: 1, “b”: 2} dict2 = {“b”: 3, “c”: 4} dict1.update(dict2) # 直接修改 dict1 print(dict1) # 输出: {‘a’: 1, ‘b’: 3, ‘c’: 4} 特点:原地修改第一个字典 适用场景:不需要保留原字典时
  • dict1 = {“a”: 1, “b”: 2} dict2 = {“b”: 3, “c”: 4} merged_dict = dict1 | dict2 print(merged_dict) # 输出: {‘a’: 1, ‘b’: 3, ‘c’: 4} 特点:语法简洁,类似 ** 运算符 注意:需要 Python 3.9+ 版本
  • from collections import ChainMap dict1 = {“a”: {“x”: 1}, “b”: 2} dict2 = {“a”: {“y”: 3}, “c”: 4} merged = ChainMap(dict2, dict1) # 优先使用 dict2 的值 print(merged[“a”]) # 输出: {‘y’: 3}(注意:不会深度合并嵌套字典) 特点:适合浅层合并,不递归处理嵌套结构 进阶方案:使用 deepmerge 库实现深度合并
  • from collections import defaultdict dict1 = {“a”: 10, “b”: 20} dict2 = {“a”: 5, “c”: 30} merged = defaultdict(int) for d in (dict1, dict2): for key, value in d.items(): merged[key] += value print(dict(merged)) # 输出: {‘a’: 15, ‘b’: 20, ‘c’: 30} 适用场景:需要自定义合并规则(如数值相加、列表拼接等)
  • 简单合并:优先使用 ** 或 | 运算符 保留原字典:使用 {**d1, **d2} 创建新字典 深度合并:使用第三方库(如 deepmerge) 自定义逻辑:手动遍历字典实现特定需求 根据具体需求选择最适合的方法即可! 到此这篇关于Python中合并两个字典的多种方法小结的文章就介绍到这了,更多相关Python合并两个字典内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客! 您可能感兴趣的文章: Python实现合并两个字典的8种方法 python实现字典合并的五种方法(附示例代码) Python合并列表、字典、字符串、CSV文件、多文件技巧 python合并两个字典的方法总结 详解Python实现字典合并的四种方法
  • 目录
    • 方法 1:使用 ** 解包运算符(Python 3.5+)
    • 方法 2:使用 update() 方法
    • 方法 3:使用 | 合并运算符(Python 3.9+)
    • 方法 4:处理嵌套字典合并
    • 方法 5:自定义合并逻辑(如值相加)
    • 总结建议

    在 Python 中合并字典有多种方法,以下是不同场景下的解决方案:

    dict1 = {"a": 1, "b": 2}
    dict2 = {"b": 3, "c": 4}
    
    merged_dict = {**dict1, **dict2}
    print(merged_dict)  # 输出: {'a': 1, 'b': 3, 'c': 4}
    
    • 特点:创建新字典,不修改原字典
    • 注意:重复键以最后一个字典的值为准

    dict1 = {"a": 1, "b": 2}
    dict2 = {"b": 3, "c": 4}
    
    dict1.update(dict2)  # 直接修改 dict1
    print(dict1)  # 输出: {'a': 1, 'b': 3, 'c': 4}
    
    • 特点:原地修改第一个字典
    • 适用场景:不需要保留原字典时

    dict1 = {"a": 1, "b": 2}
    dict2 = {"b": 3, "c": 4}
    
    merged_dict = dict1 | dict2
    print(merged_dict)  # 输出: {'a': 1, 'b': 3, 'c': 4}
    
    • 特点:语法简洁,类似 ** 运算符
    • 注意:需要 Python 3.9+ 版本

    from collections import ChainMap
    
    dict1 = {"a": {"x": 1}, "b": 2}
    dict2 = {"a": {"y": 3}, "c": 4}
    
    merged = ChainMap(dict2, dict1)  # 优先使用 dict2 的值
    print(merged["a"])  # 输出: {'y': 3}(注意:不会深度合并嵌套字典)
    
    • 特点:适合浅层合并,不递归处理嵌套结构
    • 进阶方案:使用 deepmerge 库实现深度合并

    from collections import defaultdict
    
    dict1 = {"a": 10, "b": 20}
    dict2 = {"a": 5, "c": 30}
    
    merged = defaultdict(int)
    for d in (dict1, dict2):
        for key, value in d.items():
            merged[key] += value
    
    print(dict(merged))  # 输出: {'a': 15, 'b': 20, 'c': 30}
    
    • 适用场景:需要自定义合并规则(如数值相加、列表拼接等)

    1. 简单合并:优先使用 **| 运算符
    2. 保留原字典:使用 {**d1, **d2} 创建新字典
    3. 深度合并:使用第三方库(如 deepmerge
    4. 自定义逻辑:手动遍历字典实现特定需求

    根据具体需求选择最适合的方法即可!

    到此这篇关于Python中合并两个字典的多种方法小结的文章就介绍到这了,更多相关Python合并两个字典内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!

    您可能感兴趣的文章:

    • Python实现合并两个字典的8种方法
    • python实现字典合并的五种方法(附示例代码)
    • Python合并列表、字典、字符串、CSV文件、多文件技巧
    • python合并两个字典的方法总结
    • 详解Python实现字典合并的四种方法

    站内搜索