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文件比较示例分享
Jan 10 Python
Python程序设计入门(1)基本语法简介
Jun 13 Python
Python logging模块用法示例
Aug 28 Python
Python从入门到精通之环境搭建教程图解
Sep 26 Python
wxpython绘制圆角窗体
Nov 18 Python
pytorch 彩色图像转灰度图像实例
Jan 13 Python
使用PyTorch实现MNIST手写体识别代码
Jan 18 Python
Python itertools.product方法代码实例
Mar 27 Python
pandas apply多线程实现代码
Aug 17 Python
python开发入门——列表生成式
Sep 03 Python
Django+Django-Celery+Celery的整合实战
Jan 20 Python
详解appium自动化测试工具(monitor、uiautomatorviewer)
Jan 27 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高手?学会“懒惰”的编程
2006/12/05 PHP
Dedecms V3.1 生成HTML速度的优化办法
2007/03/18 PHP
php中定义网站根目录的常用方法
2010/08/08 PHP
jQuery中的RadioButton,input,CheckBox取值赋值实现代码
2014/02/18 PHP
php用户注册信息验证正则表达式
2015/11/12 PHP
详解PHP实现执行定时任务
2015/12/21 PHP
Laravel构建即时应用的一种实现方法详解
2017/08/31 PHP
jQuery使用手册之一
2007/03/24 Javascript
js动态加载以及确定加载完成的代码
2011/07/31 Javascript
自己动手写的javascript前端等待控件
2015/10/30 Javascript
jQuery基础的工厂函数以及定时器的经典实例分析
2016/05/20 Javascript
AngularJS指令与指令之间的交互功能示例
2016/12/14 Javascript
Angularjs实现分页和分页算法的示例代码
2016/12/23 Javascript
jQuery封装animate.css的实例
2018/01/04 jQuery
Koa2微信公众号开发之消息管理
2018/05/16 Javascript
详解vue-template-admin三级路由无法缓存的解决方案
2020/03/10 Javascript
微信小程序淘宝首页双排图片布局排版代码(推荐)
2020/10/29 Javascript
vue中可编辑树状表格的实现代码
2020/10/31 Javascript
[01:20]DOTA2 齐天大圣至宝动态展示
2016/12/13 DOTA
实例Python处理XML文件的方法
2015/08/31 Python
Python实现将sqlite数据库导出转成Excel(xls)表的方法
2017/07/17 Python
Python实现的概率分布运算操作示例
2017/08/14 Python
对Python3中dict.keys()转换成list类型的方法详解
2019/02/03 Python
python安装pil库方法及代码
2019/06/25 Python
Python参数类型以及常见的坑详解
2019/07/08 Python
Python3.7安装keras和TensorFlow的教程图解
2020/06/18 Python
Python SQLAlchemy入门教程(基本用法)
2019/11/11 Python
pandas和spark dataframe互相转换实例详解
2020/02/18 Python
Python 实现RSA加解密文本文件
2020/12/30 Python
西班牙品牌鞋子、服装和配饰在线商店:Esdemarca
2021/02/17 全球购物
大学四年的个人自我评价
2014/01/14 职场文书
二手书店创业计划书
2014/01/16 职场文书
创先争优制度
2014/01/21 职场文书
解除劳动合同协议书范本2014
2014/09/25 职场文书
组织委员竞选稿
2015/11/21 职场文书
Python使用PyYAML库读写yaml文件的方法
2022/04/06 Python