当前位置:首页 > 编程教程 > Python技术文章 > python怎么合并两个字典

python中两个字典的合并

  • 发布时间:
  • 作者:码农之家
  • 点击:134

这篇文章主要知识点是关于python、合并两个字典、的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

贝叶斯思维 统计建模的Python学习法
  • 类型:Python学习大小:21.1 MB格式:PDF作者:Allen B.Downey
立即下载

Tags:Python 合并两个字典 

python怎么合并两个字典

python怎么合并两个字典

Python中将两个字典进行合并操作,是一个比较常见的问题。本文将介绍几种实现两个字典合并的方案,并对其进行比较。

对于这个问题,比较直观的想法是将两个字典做相加操作,赋值给结果字典,其代码为:

python两个字典合并(方法1)

dictMerged1 = dict( dict1.items() + dict2.items() )

然而,该方法合并时所用时间较长,效率更高的代码为:

python两个字典合并(方法2)

dictMerged2 = dict( dict1, **dict2 )

这种方法使用的是dict()工厂方法(Python2.2以上版本)。如果输入参数是另一个字典(此处为dict1),则调用该工厂方法时会从dict1中复制内容生成新的字典。该工厂方法从Python2.3版本开始,允许接受字典或关键字参数字典进行调用。

但应当注意,对于这种调用方式,dict()最多只接受一个参数(或者说是一组name=value的可变长参数),而不会再接受另一个字典。因此直观上的简单使用dict1与dict2两个参数的方法会提示如下错误:

>>> dictMerged = dict( dict1, dict2 )
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: dict expected at most 1 arguments, got 2

这也就是我们看到上面的方法2中使用的是**dict2的原因。熟悉C的朋友应当注意,在这里*的意思并不代表指针,这是Python中可变长函数参数的写法(关于可变长函数参数的相关知识见本文)。在这里,**的意思是基于字典的可变长函数参数。

方法2执行的是如同下面方法3中的代码,即先将dict1拷贝给dictMerged,在执行update()操作:

python两个字典合并(方法3)

dictMerged3 = dict1.copy()
dictMerged3.update( dict2 )

对于第一步的复制操作而言,这种使用内建方法copy()的复制方式,和方法2中的复制结果是一样的,但根据《Core Python Programming (2nd edition)》一书中7.3.2节所述,从已存在字典中生成新字典的方式dictNew = dict( dictOld )较内建方法dictNew = dictOld.copy()会慢一些,因此书中推荐使用copy()方法。

因此,从这几种方式看来,方法3的效率最高,并且代码也比较易读。

相关推荐:《Python教程》

以上就是python怎么合并两个字典的详细内容,更多请关注码农之家其它相关文章!

以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

Python 相关电子书
学习笔记
网友NO.489050

Python中如何优雅的合并两个字典(dict)方法示例

前言 字典是Python中最强大的数据类型之一,本文将给大家详细介绍关于Python合并两个字典(dict)的相关内容,分享出来供大家参考学习,话不多说了,来一起看看详细的介绍吧。 一行代码合并两个dict 假设有两个dict x和y,合并成一个新的dict,不改变 x和y的值,例如 x = {'a': 1, 'b': 2} y = {'b': 3, 'c': 4} 期望得到一个新的结果Z,如果key相同,则y覆盖x。期望的结果是 z{'a': 1, 'b': 3, 'c': 4} 在PEP448中,有个新的语法可以实现,并且在python3.5中支持了该语法,合并代码如下 z = {**x, **y} 妥妥的一行代码。 由于现在很多人还在用python2,对于python2和python3.0-python3.4的人来说,有一个比较优雅的方法,但是需要两行代码。 z = x.copy()z.update(y) 上面的方法,y都会覆盖x里的内容,所以最终结果b=3. 不使用python3.5如何一行完成了 如果您还没有使用Python 3.5,或者需要编写向后兼……

网友NO.659246

Python合并两个字典的效率实例比较

这篇文章主要介绍了Python合并两个字典的常用方法与效率比较,实例分析并对比了Python合并字典的常用方法,需要的朋友可以参考下 本文实例讲述了Python合并两个字典的常用方法与效率比较。分享给大家供大家参考。具体分析如下: 下面的代码举例了5种合并两个字典的方法,并且做了个简单的性能测试 #!/usr/bin/python import time def f1(d1, d2): return dict(d1, **d2) def f2(d1, d2): return dict(d1.items() + d2.items()) def f3(d1, d2): d = d1.copy() d.update(d2) return d def f4(d1, d2): d1.update(d2) return d1 def f5(d1, d2): d = dict(d1) d.update(d2) return d def f6(d1, d2): return (lambda a, b: (lambda a_copy: a_copy.update(b) or a_copy)(a.copy()))(d1, d2) def f7(d1, d2): d = {} d.update(d1) d.update(d2) return d def t(f, n): st = time.time() for i in range(1000000): dic1 = {'a':'AA','b':'BB','c':'CC'} dic2 = {'A':'aa','B':'bb','C':'cc'} f(dic1, dic2) et = time.time() print '%s cost:%s'%(n,……

网友NO.903661

Python中如何合并两个字典教程

字典是Python语言中唯一的映射类型,在我们日常工作中经常会遇到,下面这篇文章主要给大家介绍了关于Python中如何优雅的合并两个字典(dict)的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。 前言 字典是Python中最强大的数据类型之一,本文将给大家详细介绍关于Python合并两个字典(dict)的相关内容,分享出来供大家参考学习,话不多说了,来一起看看详细的介绍吧。 一行代码合并两个dict 假设有两个dict x和y,合并成一个新的dict,不改变 x和y的值,例如 x = {'a': 1, 'b': 2} y = {'b': 3, 'c': 4} 期望得到一个新的结果Z,如果key相同,则y覆盖x。期望的结果是 z{'a': 1, 'b': 3, 'c': 4} 在PEP448中,有个新的语法可以实现,并且在python3.5中支持了该语法,合并代码如下 z = {**x, **y} 妥妥的一行代码。 由于现在很多人还在用……

<
1
>

电子书 编程教程 PC软件下载 安卓软件下载

Copyright 2018-2020 xz577.com 码农之家

本站所有电子书资源不再提供下载地址,只分享来路

免责声明:网站所有作品均由会员网上搜集共同更新,仅供读者预览及学习交流使用,下载后请24小时内删除

版权投诉 / 书籍推广 / 赞助:QQ:520161757