zoukankan      html  css  js  c++  java
  • Python 合并两个字典(Dictionary)中相同key的value的方法

    示例字典:

    d1 = { 'a': [2,4,5,6,8,10], 'b': [1,2,5,6,9,12],
    
    'c': [0,4,5,8,10,21] } d2 = { 'a': [12,15], 'b': [14,16], 'c': [23,35] }

    合并后效果:

    {'a': [2, 4, 5, 6, 8, 10, 12, 15],
     'b': [1, 2, 5, 6, 9, 12, 14, 16],
     'c': [0, 4, 5, 8, 10, 21, 23, 35]}

    1、使用字典生成表达式

    1 = {
     'a': [2,4,5,6,8,10],
     'b': [1,2,5,6,9,12],
     'c': [0,4,5,8,10,21]
     }
    d2 = {
     'a': [12,15],
     'b': [14,16],
     'c': [23,35]
      }
    {key: d1[key] + d2[key] for key in d1}
    {'a': [2, 4, 5, 6, 8, 10, 12, 15],
     'b': [1, 2, 5, 6, 9, 12, 14, 16],
     'c': [0, 4, 5, 8, 10, 21, 23, 35]}

    或者

    combined_keys = d1.keys() | d2.keys()
    d_comb = {key: d1.get(key, []) + d2.get(key, []) for key in combined_keys}

    或者

    d_comb = {key:[*d1[key], *d2[key]] for key in d1}
    print(d_comb)

    2、使用for循环实现

    d1 = {'a': [2, 4, 5, 6, 8, 10], 'b': [1, 2, 5, 6, 9, 12], 'c': [0, 4, 5, 8, 10, 21], 'e':[0,0,0]}
    d2 = {'a': [12, 15], 'b': [14, 16], 'c': [23, 35], 'd': [13, 3]}
    d2_keys_not_in_d1 = d2.keys() - d1.keys()
    d1_keys_not_in_d2 = d1.keys() - d2.keys()
    common_keys = d2.keys() & d1.keys()
    for i in common_keys:
        d[i]=d1[i]+d2[i]
    for i in d1_keys_not_in_d2:
        d[i]=d1[i]
    for i in d2_keys_not_in_d1:
        d[i]=d2[i]
    d
    {'a': [2, 4, 5, 6, 8, 10, 12, 15],
     'b': [1, 2, 5, 6, 9, 12, 14, 16],
     'c': [0, 4, 5, 8, 10, 21, 23, 35],
     'd': [13, 3],
     'e': [0, 0, 0]}

    3、使用itertools.chain实现

    from itertools import chain
    d_comb = {key: list(chain(d1[key], d2[key])) for key in d1}
  • 相关阅读:
    记:关于反演
    记:关于费马平方和定理的证明
    【2021集训队互测一】愚蠢的在线法官 题解
    CSP/NOIP2021 赛前集训
    20220108 省选组 总结
    Atcoder比赛总结
    Python读取execl数据写入到mysql
    大家都可以拖动的web小方块——Node.js摸石头系列之七
    创建一个Mybatis工程
    Spring整合Mybatis
  • 原文地址:https://www.cnblogs.com/wlike/p/15801325.html
Copyright © 2011-2022 走看看