Python两个字典键同值相加的几种方法

 更新时间:2019年03月05日 10:36:35   作者:杰瑞26  
今天小编就为大家分享一篇关于Python两个字典键同值相加的几种方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

两个字典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爬虫爬取有道实现翻译功能

    这篇文章主要介绍了Python爬虫爬取有道实现翻译功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • 用什么库写 Python 命令行程序(示例代码详解)

    用什么库写 Python 命令行程序(示例代码详解)

    这篇文章主要介绍了用什么库写 Python 命令行程序,这一篇文章给大家介绍的非常详细全面看这一天足够了,需要的朋友可以参考下
    2020-02-02
  • 从零学Python之入门(二)基本数据类型

    从零学Python之入门(二)基本数据类型

    这是继“hello world”之后的第二篇入门级基础知识,以后这个系列会按照入门、进阶、精通三个分类进行下去,欢迎高手们来拍砖
    2014-05-05
  • Python使用conda如何安装requirement.txt的扩展包

    Python使用conda如何安装requirement.txt的扩展包

    这篇文章主要介绍了Python使用conda如何安装requirement.txt的扩展包问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • python实现批量注册网站用户的示例

    python实现批量注册网站用户的示例

    今天小编就为大家分享一篇python实现批量注册网站用户的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-02-02
  • 详解如何使用Python和正则表达式处理XML表单数据

    详解如何使用Python和正则表达式处理XML表单数据

    在日常的Web开发中,处理表单数据是一个常见的任务,而XML是一种常用的数据格式,用于在不同的系统之间传递和存储数据,本文通过阐述一个技术问题并给出解答的方式,介绍如何使用Python和正则表达式处理XML表单数据,需要的朋友可以参考下
    2023-09-09
  • Python操作Excel数据的封装函数分享

    Python操作Excel数据的封装函数分享

    对比其它编程语言,我们都知道Python最大的优势是代码简单,有丰富的第三方开源库供开发者使用。而对于数据的读取和存储,对于普通人来讲,除了数据库之外,最常见的就是微软的Excel。本文为大家准备了Python操作Excel数据的封装函数,希望对大家有所帮助
    2022-11-11
  • MacbookM1 python环境配置随笔

    MacbookM1 python环境配置随笔

    这篇文章主要介绍了MacbookM1 python环境配置随笔,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • pytorch中的model=model.to(device)使用说明

    pytorch中的model=model.to(device)使用说明

    这篇文章主要介绍了pytorch中的model=model.to(device)使用说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • 详解Python数据结构与算法中的顺序表

    详解Python数据结构与算法中的顺序表

    线性表在计算机中的表示可以采用多种方法,采用不同存储方法的线性表也有着不同的名称和特点。线性表有两种基本的存储结构:顺序存储结构和链式存储结构。本文将介绍顺序存储结构的特点以及各种基本运算的实现。需要的可以参考一下
    2022-01-01

最新评论