从两个表中查两个相同字段名的值_Python 两个字典如何实现相加?(相同的键,值相加)...

570cc43f1734532fc4e77f326b21472c.gif

背景

在数据处理过程中经常遇到求两个字典相加(并集),要求相同的键,值相加,不同的键,进行汇集,最后得出一个总的字典,自己可以先进行思考,利用已有的知识,是否马上在心里有解决方法
例如:
d1={'a':1,'b':1}
d2={'b':2,'c':2}
要求的结果:d1+d2={'a':1,'b':3,'c':2}


下面介绍两种方法:

  • 自定义函数法

  • 利用collections库

方法一

1def sum_dict(a,b):
2    temp = dict()
3    # dict_keys类似set,| 代表并集
4    for key in a.keys() | b.keys():
5        temp[key] = sum([d.get(key, 0) for d in (a, b)])
6    return temp

案例:

12997f7fd4139cbd88f44cba777adaa7.png
自定义函数法

方法二

利用collections库里面的Counter函数进行计数,collections模块是一个很强大的模块,里面有各种扩展的变量容器,如果感兴趣的话可以参考下面这篇文章,里面有详细的使用方法,《Python-collections模块》(https://blog.csdn.net/mall_lucy/article/details/108822795)

下面是利用collections库的实现方法:

3195e65f6dcafcb0d8787d83bc97ce01.png
collections.Counter

往期相关文章

  • Python math模块详解

  • Python pandas数据计数函数value_counts


以上是自己实践中遇到的一些问题,分享出来供大家参考学习,欢迎关注 DataShare,不定期分享干货

e77aaedabb2452063c6d3b3ab37e27c2.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值