Python两个字典键同值相加的几种方法


Posted in Python onMarch 05, 2019

两个字典A = {'a': 1, 'b': 2, 'c': 3}, B = {'b': 4, 'c': 6, 'd': 8} 要合并这两个字典,键值同则相加。

两个字典如果不考虑键相同则相加的话,可以使用d1.update(d2)可以很方便合并,但这样的后面的字典到中的值会覆盖字典d1中的值。

>>> A = {'a': 1, 'b': 2}
>>> B = {'a': 8, 'c': 3}
>>> A.update(B)
>>> A
{'a': 8, 'b': 2, 'c': 3}

如果要考虑两个字典,如果考虑键同则值相加的问题,可以使用下面的几种方法:

方法一:

>>> A = {'a': 1, 'b': 2, 'c': 3}
>>> B = {'b': 4, 'c': 6, 'd': 8}
>>> for key,value in B.items():
...   if key in A:
...     A[key] += value
...   else:
...     A[key] = value
>>> dict(sorted(A.items(), key=lambda d:d[1]))
{'a': 1, 'b': 6, 'd': 8, 'c': 9}

方法二:

>>> A = {'a': 1, 'b': 2, 'c': 3}
>>> B = {'b': 4, 'c': 6, 'd': 8}
>>> C = {}
>>> for key in list(set(A) | set(B)):
...   if A.get(key) and B.get(key):
...     C.update({key: A.get(key) + B.get(key)})
...   else:
...     C.update({key: A.get(key) or B.get(key)})
>>> C
{'c': 9, 'd': 8, 'a': 1, 'b': 6}

方法三:

>>> A = {'a': 1, 'b': 2, 'c': 3}
>>> B = {'b': 4, 'c': 6, 'd': 8}
>>> def dict_union(d1, d2):
...   keys = d1.keys() | d2.keys()
...   temp = {}
...   for key in keys:
...     temp[key] = sum([d.get(key,0) for d in (d1, d2)])
...   return temp
>>> C = dict_union(A, B)
>>> C
{'d': 8, 'a': 1, 'b': 6, 'c': 9}

方法四:

>>> A = {'a': 1, 'b': 2, 'c': 3}
>>> B = {'b': 4, 'c': 6, 'd': 8}
>>> C = {}
>>> for key1 in A:
...   for key2 in B:
...     if key1 in B:
...       C[key1] = A[key1] + B[key1]
...     else:
...       C[key1] = A[key1]
...       if key2 not in A:
...         C[key2] = B[key2]
>>> C
{'a': 1, 'd': 8, 'b': 6, 'c': 9}

方法五:

>>> A = {'a': 1, 'b': 2, 'c': 3}
>>> B = {'b': 4, 'c': 6, 'd': 8}
>>> C = {}
>>> for key in A:
...   if B.get(key):
...     C[key] = A[key] + B[key]
...   else:
...     C[key] = A[key]
>>> for key in B:
...   if not A.get(key):
...     C[key] = B[key]
>>> C
{'a': 1, 'b': 6, 'c': 9, 'd': 8}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Python 相关文章推荐
python中实现延时回调普通函数示例代码
Sep 08 Python
python的Crypto模块实现AES加密实例代码
Jan 22 Python
python3爬取淘宝信息代码分析
Feb 10 Python
python中使用PIL制作并验证图片验证码
Mar 15 Python
浅谈Series和DataFrame中的sort_index方法
Jun 07 Python
selenium+python 对输入框的输入处理方法
Oct 11 Python
python批量赋值操作实例
Oct 22 Python
python 实现提取某个索引中某个时间段的数据方法
Feb 01 Python
python实现二维数组的对角线遍历
Mar 02 Python
Django项目主urls导入应用中views的红线问题解决
Aug 10 Python
Python内置方法实现字符串的秘钥加解密(推荐)
Dec 09 Python
python入门:argparse浅析 nargs='+'作用
Jul 12 Python
详解python算法之冒泡排序
Mar 05 #Python
Python字符串通过'+'和join函数拼接新字符串的性能测试比较
Mar 05 #Python
Python实现KNN(K-近邻)算法的示例代码
Mar 05 #Python
Python按钮的响应事件详解
Mar 04 #Python
Python中三元表达式的几种写法介绍
Mar 04 #Python
Python生成器的使用方法和示例代码
Mar 04 #Python
Python去除字符串前后空格的几种方法
Mar 04 #Python
You might like
PHP高自定义性安全验证码代码
2011/11/27 PHP
9个实用的PHP代码片段分享
2015/01/22 PHP
PHP+JS实现大规模数据提交的方法
2015/07/02 PHP
动手学习无线电
2021/03/10 无线电
使用jquery选择器如何获取父级元素、同级元素、子元素
2014/05/14 Javascript
一个Action如何调用两个不同的方法
2014/05/22 Javascript
js兼容火狐获取图片宽和高的方法
2015/05/21 Javascript
js实现汉字排序的方法
2015/07/23 Javascript
JavaScript构造函数详解
2015/12/27 Javascript
Jquery实现跨域异步上传文件总结
2017/02/03 Javascript
微信小程序中做用户登录与登录态维护的实现详解
2017/05/17 Javascript
webpack热模块替换(HMR)/热更新的方法
2018/04/05 Javascript
JavaScript链式调用实例浅析
2018/12/19 Javascript
详解如何在Vue项目中导出Excel
2019/04/19 Javascript
简单了解小程序+node梳理登陆流程
2019/06/24 Javascript
python将excel转换为csv的代码方法总结
2019/07/03 Python
Python使用Pandas对csv文件进行数据处理的方法
2019/08/01 Python
Python SSL证书验证问题解决方案
2020/01/13 Python
TensorFlow实现保存训练模型为pd文件并恢复
2020/02/06 Python
解决Keyerror ''acc'' KeyError: ''val_acc''问题
2020/06/18 Python
Python turtle库的画笔控制说明
2020/06/28 Python
python如何利用Mitmproxy抓包
2020/10/10 Python
利用python爬取有道词典的方法
2020/12/08 Python
css3 给页面加个半圆形导航条主要利用旋转和倾斜样式
2014/02/10 HTML / CSS
CSS3中Transition动画属性用法详解
2016/07/04 HTML / CSS
TripAdvisor斯洛伐克:阅读评论、比较价格和酒店预订
2018/04/25 全球购物
Goodee官方商店:迷你投影仪
2021/03/15 全球购物
Web Service面试题:如何搭建Axis2的开发环境
2012/06/20 面试题
《自选商场》教学反思
2014/02/14 职场文书
春节联欢晚会主持词
2014/03/24 职场文书
电子商务助理求职自荐信
2014/04/10 职场文书
论文评语大全
2014/04/29 职场文书
毕业季聚会祝酒词!
2019/07/04 职场文书
小公司融资,商业计划书的8切记
2019/07/15 职场文书
java设计模式--七大原则详解
2021/07/21 Java/Android
div与span之间的区别与使用介绍
2021/12/06 HTML / CSS