python多个条件组合覆盖_Python合并两个字典键相同值不覆盖的几种方法

需求:

两个字典dict1和dict2,要求合并,如果两个字典键相同则把值放在一个列表里,如果键不同则值单独保留为一个列表。(合并后的结果如下)[ps:python两个字典合并key相同时后面字典值会覆盖前面的字典]

代码如下:

# -*- coding: utf-8 -*-

dict1 = {'aa':'1','bb':'2','dd':'2'}

dict2 = {'aa':'2','bb':'4','cc':'1'}

dict3 = {'aa':['1','2'],'bb':['2','4'],'cc':['1'],'dd':['2']}

dict1_item = (dict1.items())

dict2_item = (dict2.items())

dict3 = {}

for k1,v1 in dict1_item:

for k2,v2 in dict2_item:

if k1 == k2:

dict3[k1] = [v1,v2]

if k1 not in dict2:

dict3[k1] = [v1]

for k2,v2 in dict2_item:

if k2 not in dict1:

dict3[k2] = [v2]

print(dict3)

D:python3installpython.exe D:/python/py3script/python66.py

{'aa': ['1', '2'], 'bb': ['2', '4'], 'dd': ['2'], 'cc': ['1']}

Process finished with exit code 0

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值