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的净值数据接口调用示例分享
Mar 15 Python
儿童学习python的一些小技巧
May 27 Python
Python使用Selenium模块模拟浏览器抓取斗鱼直播间信息示例
Jul 18 Python
python list转矩阵的实例讲解
Aug 04 Python
python3去掉string中的标点符号方法
Jan 22 Python
pyqt 多窗口之间的相互调用方法
Jun 19 Python
Python pip替换为阿里源的方法步骤
Jul 02 Python
通过字符串导入 Python 模块的方法详解
Oct 27 Python
关于win10在tensorflow的安装及在pycharm中运行步骤详解
Mar 16 Python
python 追踪except信息方式
Apr 25 Python
Python实现手绘图效果实例分享
Jul 22 Python
python中slice参数过长的处理方法及实例
Dec 15 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
很温暖很温暖的Lester Young
2021/03/03 冲泡冲煮
windows服务器中检测PHP SSL是否开启以及开启SSL的方法
2014/04/25 PHP
php结合js实现点击超链接执行删除确认操作
2014/10/31 PHP
IE autocomplete internet explorer's autocomplete
2007/06/30 Javascript
js常见表单应用技巧
2008/01/09 Javascript
window.onbeforeunload方法在IE下无法正常工作的解决办法
2010/01/23 Javascript
使用jquery实现div的tab切换实例代码
2013/05/27 Javascript
在服务端(Page.Write)调用自定义的JS方法详解
2013/08/09 Javascript
JQuery拖动表头边框线调整表格列宽效果代码
2014/09/10 Javascript
浅谈轻量级js模板引擎simplite
2015/02/13 Javascript
详解JavaScript中jQuery和Ajax以及JSONP的联合使用
2015/08/13 Javascript
三个js循环的关键字示例(for与while)
2016/02/16 Javascript
Javascript将数字转化成为货币格式字符串
2016/06/22 Javascript
javascript设计模式之module(模块)模式
2016/08/19 Javascript
Vuex2.0+Vue2.0构建备忘录应用实践
2016/11/30 Javascript
jQuery插件FusionCharts绘制ScrollColumn2D图效果示例【附demo源码下载】
2017/03/22 jQuery
微信小程序 判断手机号的实现代码
2017/04/19 Javascript
JavaScript实现淘宝京东6位数字支付密码效果
2018/08/18 Javascript
Vue中 v-if 和v-else-if页面加载出现闪现的问题及解决方法
2018/10/12 Javascript
微信小程序实现炫酷的弹出式菜单特效
2019/01/28 Javascript
vue-cli 为项目设置别名的方法
2019/10/15 Javascript
解决Vue-Router升级导致的Uncaught (in promise)问题
2020/08/07 Javascript
[40:06]DOTA2亚洲邀请赛 4.3 突围赛 Liquid vs VGJ.T 第一场
2018/04/04 DOTA
Python采集腾讯新闻实例
2014/07/10 Python
Python OS模块实例详解
2019/04/15 Python
解决使用export_graphviz可视化树报错的问题
2019/08/09 Python
HearthSong官网:儿童户外玩具、儿童益智玩具
2017/10/16 全球购物
英国第一的购买便宜玩具和游戏的在线购物网站:Bargain Max
2018/01/24 全球购物
大学生自我评价怎样写好
2013/10/23 职场文书
军训自我鉴定
2013/12/14 职场文书
淘宝好评语大全
2014/05/05 职场文书
节约用水的口号
2014/06/20 职场文书
2014班子“三严三实”对照检查材料思想汇报
2014/09/18 职场文书
导游词格式
2015/02/13 职场文书
大学四年个人总结
2015/03/03 职场文书
中国合伙人观后感
2015/06/02 职场文书