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 中__name__ = '__main__' 的作用
Jul 05 Python
使用Python操作Elasticsearch数据索引的教程
Apr 08 Python
python和bash统计CPU利用率的方法
Jul 10 Python
python中模块的__all__属性详解
Oct 26 Python
Python实现批量读取图片并存入mongodb数据库的方法示例
Apr 02 Python
Python 实现两个列表里元素对应相乘的方法
Nov 14 Python
解决python2 绘图title,xlabel,ylabel出现中文乱码的问题
Jan 29 Python
基于python的ini配置文件操作工具类
Apr 24 Python
python 实现多线程下载m3u8格式视频并使用fmmpeg合并
Nov 15 Python
Pycharm安装并配置jupyter notebook的实现
May 18 Python
flask开启多线程的具体方法
Aug 02 Python
Python3利用openpyxl读写Excel文件的方法实例
Feb 03 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工厂模式
2014/11/25 PHP
php获取文件类型和文件信息的方法
2015/07/10 PHP
laravel框架中视图的基本使用方法分析
2019/11/23 PHP
为Extjs加加速(javascript加速)
2010/08/19 Javascript
修复IE9&safari 的sort方法
2011/10/21 Javascript
jQuery弹出层始终垂直居中相对于屏幕或当前窗口
2013/04/01 Javascript
jquery 层次选择器siblings与nextAll的区别介绍
2013/08/02 Javascript
JS获取select的value和text值的简单实例
2014/02/26 Javascript
网站繁简切换的JS遇到页面卡死的解决方法
2014/03/12 Javascript
js实现点击图片将图片地址复制到粘贴板的方法
2015/02/16 Javascript
Javascript URI 解析介绍
2015/03/15 Javascript
学习javascript面向对象 理解javascript原型和原型链
2016/01/04 Javascript
举例讲解jQuery对DOM元素的向上遍历、向下遍历和水平遍历
2016/07/07 Javascript
全面了解函数声明与函数表达式、变量提升
2016/08/09 Javascript
javascript实现去除HTML标签的方法
2016/12/26 Javascript
浅析JS中的 map, filter, some, every, forEach, for in, for of 用法总结
2017/03/29 Javascript
微信小程序显示倒计时功能示例【测试可用】
2018/12/03 Javascript
React 实现拖拽功能的示例代码
2019/01/06 Javascript
微信小程序实现商品属性联动选择
2019/02/15 Javascript
在vue中使用axios实现post方式获取二进制流下载文件(实例代码)
2019/12/16 Javascript
ES6中Set和Map用法实例详解
2020/03/02 Javascript
JS实现网页烟花动画效果
2020/03/10 Javascript
谈谈node.js中的模块系统
2020/09/01 Javascript
Python3使用PyQt5制作简单的画板/手写板实例
2017/10/19 Python
我就是这样学习Python中的列表
2019/06/02 Python
python视频按帧截取图片工具
2019/07/23 Python
mac在matplotlib中显示中文的操作方法
2020/03/06 Python
利用OpenCV中对图像数据进行64F和8U转换的方式
2020/06/03 Python
关于python的缩进规则的知识点详解
2020/06/22 Python
如何用python免费看美剧
2020/08/11 Python
OpenCV+python实现膨胀和腐蚀的示例
2020/12/21 Python
我们是伦敦女孩:WalG
2018/01/08 全球购物
资料员的岗位职责
2013/11/20 职场文书
文明寄语大全
2014/04/11 职场文书
60条职场经典语录,总有一条能触动你的心
2019/08/21 职场文书
Go语言怎么使用变长参数函数
2022/07/15 Golang