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 06 Python
Python3.2中的字符串函数学习总结
Apr 23 Python
Python字符串逐字符或逐词反转方法
May 21 Python
Python3实现爬取指定百度贴吧页面并保存页面数据生成本地文档的方法
Apr 22 Python
对python多线程中互斥锁Threading.Lock的简单应用详解
Jan 11 Python
Python实现计算文件MD5和SHA1的方法示例
Jun 11 Python
Django models.py应用实现过程详解
Jul 29 Python
python 图片二值化处理(处理后为纯黑白的图片)
Nov 01 Python
python如何求圆的面积
Jul 01 Python
如何用python免费看美剧
Aug 11 Python
python判断字符串以什么结尾的实例方法
Sep 18 Python
Pandas 稀疏数据结构的实现
Jul 25 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不用正则验证真假身份证
2013/11/06 PHP
php安装扩展mysqli的实现步骤及报错解决办法
2017/09/23 PHP
PHP预定义接口――Iterator用法示例
2020/06/05 PHP
PHP操作Redis常用命令的实例详解
2020/12/23 PHP
javascript 获取图片颜色
2009/04/05 Javascript
js opener的使用详解
2014/01/11 Javascript
web前端设计师们常用的jQuery特效插件汇总
2014/12/07 Javascript
jquery+json实现数据二级联动的方法
2015/11/28 Javascript
Javascript基础知识盲点总结之函数
2016/05/15 Javascript
jQuery图片前后对比插件beforeAfter用法示例【附demo源码下载】
2016/09/20 Javascript
Bootstrap基本插件学习笔记之标签切换(17)
2016/12/08 Javascript
jQuery EasyUI Panel面板组件使用详解
2017/02/28 Javascript
Vue中的ref作用详解(实现DOM的联动操作)
2017/08/21 Javascript
Angular2的管道Pipe的使用方法
2017/11/07 Javascript
vue左侧菜单,树形图递归实现代码
2018/08/24 Javascript
NodeJs 文件系统操作模块fs使用方法详解
2018/11/26 NodeJs
了解javascript中let和var及const关键字的区别
2019/05/24 Javascript
对Layer弹窗使用及返回数据接收的实例详解
2019/09/26 Javascript
[00:32]DOTA2上海特级锦标赛 COL战队宣传片
2016/03/04 DOTA
[45:38]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第一局
2016/03/02 DOTA
树莓派中python获取GY-85九轴模块信息示例
2013/12/05 Python
Python中type的构造函数参数含义说明
2015/06/21 Python
PyQt打开保存对话框的方法和使用详解
2019/02/27 Python
Python实现的序列化和反序列化二叉树算法示例
2019/03/02 Python
python使用 request 发送表单数据操作示例
2019/09/25 Python
html5 兼容IE6结构的实现代码
2012/05/14 HTML / CSS
天猫国际进口超市直营:官方直采,一站购齐
2017/12/11 全球购物
国际旅客访问北美最大的汽车租赁提供商:Alamo Rent A Car
2018/06/13 全球购物
LUISAVIAROMA中国官网:时尚奢侈品牌购物网站
2020/11/01 全球购物
污水厂厂长岗位职责
2014/01/04 职场文书
公积金单位接收函
2014/01/11 职场文书
小学教师师德师风演讲稿
2014/08/22 职场文书
2014年班组建设工作总结
2014/12/01 职场文书
文明倡议书
2015/01/19 职场文书
订货会邀请函
2015/01/31 职场文书
英文版辞职信
2015/02/28 职场文书