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实现信用卡系统(支持购物、转账、存取钱)
Jun 24 Python
使用实现pandas读取csv文件指定的前几行
Apr 20 Python
python使用pipeline批量读写redis的方法
Feb 18 Python
python中logging模块的一些简单用法的使用
Feb 22 Python
PyQt5 加载图片和文本文件的实例
Jun 14 Python
python数据挖掘需要学的内容
Jun 23 Python
对python 中class与变量的使用方法详解
Jun 26 Python
python 抓包保存为pcap文件并解析的实例
Jul 23 Python
Python3.7在anaconda里面使用IDLE编译器的步骤详解
Apr 29 Python
基于python和flask实现http接口过程解析
Jun 15 Python
基于Python制作一副扑克牌过程详解
Oct 19 Python
python 实现图片特效处理
Apr 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
mysql 查询指定日期时间内sql语句实现原理与代码
2012/12/16 PHP
理解PHP中的Session及对Session有效期的控制
2016/01/08 PHP
简单介绍PHP非阻塞模式
2016/03/03 PHP
深入理解PHP的远程多会话调试
2017/09/21 PHP
Thinkphp5.0 框架实现控制器向视图view赋值及视图view取值操作示例
2019/10/12 PHP
让你的PHP,APACHE,NGINX支持大文件上传
2021/03/09 PHP
YUI 读码日记之 YAHOO.util.Dom - Part.1
2008/03/22 Javascript
改写一个简单的菜单 弹性大小
2010/12/02 Javascript
浅谈Javascript中深复制
2014/12/01 Javascript
JS中innerHTML和pasteHTML的区别实例分析
2016/06/22 Javascript
纯css下拉菜单 无需js
2016/08/15 Javascript
原生js+cookie实现购物车功能的方法分析
2017/12/21 Javascript
Angular2 自定义表单验证器的实现方法
2018/12/14 Javascript
Node配合WebSocket做多文件下载以及进度回传
2019/11/07 Javascript
AngularJS动态生成select下拉框的方法实例
2019/11/17 Javascript
vue实现短信验证码登录功能(流程详解)
2019/12/10 Javascript
[02:17]快乐加倍!DOTA2食人魔魔法师至宝+迎霜节活动上线
2019/12/22 DOTA
Python获取网页上图片下载地址的方法
2015/03/11 Python
浅谈python抛出异常、自定义异常, 传递异常
2016/06/20 Python
深入理解Python中range和xrange的区别
2017/11/26 Python
Python中偏函数用法示例
2018/06/07 Python
用python标准库difflib比较两份文件的异同详解
2018/11/16 Python
Django项目使用ckeditor详解(不使用admin)
2019/12/17 Python
Python使用monkey.patch_all()解决协程阻塞问题
2020/04/15 Python
python logging通过json文件配置的步骤
2020/04/27 Python
Python 如何操作 SQLite 数据库
2020/08/17 Python
HTML5新增加的功能详解
2016/09/05 HTML / CSS
de Bijenkorf比利时官网:荷兰最知名的百货商店
2017/06/29 全球购物
东南亚旅游平台:The Trip Guru
2018/01/01 全球购物
圣彼得堡鲜花配送:Semicvetic
2020/09/15 全球购物
日语求职信范文
2013/12/17 职场文书
四年级科学教学反思
2014/02/10 职场文书
党的群众路线领导班子整改方案
2014/09/27 职场文书
写作之关于描写老人的好段摘抄
2019/11/14 职场文书
《艾尔登法环》Boss腐烂树灵很有可能是《黑暗之魂3》的一个废案
2022/04/11 其他游戏
二维码条形码生成的JavaScript脚本库
2022/07/07 Javascript