Python “合并字典”

def count_dicts(dict1, dict2):
    differ = set(dict1) ^ set(dict2) 
    same = set(dict1) & set(dict2)
    
    # print(same)
    # print(differ)

    for key in same:
        dict1[key] += dict2[key]

    for key in differ:
        if key not in dict1.keys(): 
            dict1[key] = dict2[key]

def main():
    dict1 = {'a': 10, 'b': 8, 'c':10} 
    dict2 = {'d': 6, 'c': 4} 
    dict3 = {'d': 7, 'c': 1, 'e': 6} 
    count_dicts(dict1, dict2)
    count_dicts(dict1, dict3)
    print(dict1)
if __name__ == '__main__':
    main()
{'a': 10, 'b': 8, 'c': 15, 'd': 13, 'e': 6}

也可以对两个list求差集, 并集

a = [1, 2, 3, 4]
b = [2, 4, 6, 8]

#方法一:
# same = [i for i in a if i in b]
# differ = [j for j in (a + b) if j not in same]

#方法二:
same = set(a) & set(b)
differ = set(a) ^ set(b)

print(same)
print(differ)

'''
output:

{2, 4}
{1, 3, 6, 8}
'''

set是数学意义上无序和无重复元素的集合,因此可以做数学意义上的交集并集等 使用dict和set

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值