python字典合并 同key_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}

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值