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实现360皮肤按钮控件示例
Feb 21 Python
python中split方法用法分析
Apr 17 Python
python使用str & repr转换字符串
Oct 13 Python
Python使用win32com实现的模拟浏览器功能示例
Jul 13 Python
解决python3 Pycharm上连接数据库时报错的问题
Dec 03 Python
详解Python:面向对象编程
Apr 10 Python
Pandas的read_csv函数参数分析详解
Jul 02 Python
解决Python3 抓取微信账单信息问题
Jul 19 Python
python+Django+pycharm+mysql 搭建首个web项目详解
Nov 29 Python
django框架单表操作之增删改实例分析
Dec 16 Python
call在Python中改进数列的实例讲解
Dec 09 Python
Python爬虫设置Cookie解决网站拦截并爬取蚂蚁短租的问题
Feb 22 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&MYSQL分页原理及实现
2007/01/02 PHP
PHP中对用户身份认证实现两种方法
2011/06/04 PHP
PHP_NETWORK_GETADDRESSES: GETADDRINFO FAILED问题解决办法
2014/05/04 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十六)
2014/06/30 PHP
Destoon实现多表查询示例
2014/08/21 PHP
php中socket的用法详解
2014/10/24 PHP
yii2带搜索功能的下拉框实例详解
2016/05/12 PHP
常用PHP数组排序函数归纳
2016/08/08 PHP
PHP编写daemon process 实例详解
2016/11/13 PHP
IE6 fixed的完美解决方案
2011/03/31 Javascript
浅析jquery的作用与优势
2013/12/02 Javascript
基于iframe实现类似于ajax的页面无刷新
2014/05/31 Javascript
鼠标悬浮显示二级菜单效果的jquery实现
2014/10/29 Javascript
基于Bootstrap+jQuery.validate实现Form表单验证
2014/12/16 Javascript
基于JavaScript实现表单密码的隐藏和显示出来
2016/03/02 Javascript
JavaScript实现带播放列表的音乐播放器实例分享
2016/03/07 Javascript
微信小程序滚动Tab实现左右可滑动切换
2017/08/17 Javascript
webpack手动配置React开发环境的步骤
2018/07/02 Javascript
使用vue.js在页面内组件监听scroll事件的方法
2018/09/11 Javascript
js中怎么判断两个字符串相等的实例
2019/01/17 Javascript
JS计算两个数组的交集、差集、并集、补集(多种实现方式)
2019/05/21 Javascript
Vue商品控件与购物车联动效果的实例代码
2019/07/21 Javascript
JavaScript提升机制Hoisting详解
2019/10/23 Javascript
Django 内置权限扩展案例详解
2019/03/04 Python
python清空命令行方式
2020/01/13 Python
Python3 实现爬取网站下所有URL方式
2020/01/16 Python
HTML5 创建canvas元素示例代码
2014/06/04 HTML / CSS
小小商店教学反思
2014/04/27 职场文书
大学新闻系自荐书
2014/05/31 职场文书
政法干警核心价值观心得体会
2014/09/11 职场文书
开展党的群众路线教育实践活动总结报告
2014/10/31 职场文书
龙猫观后感
2015/06/09 职场文书
婚宴祝酒词大全
2015/08/10 职场文书
vue完美实现el-table列宽自适应
2021/05/08 Vue.js
前端实现滑动按钮AJAX与后端交互的示例代码
2022/02/24 Javascript
世界十大狙击步枪排行榜
2022/03/20 杂记