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 "", line 1, in

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怎么合并两个字典相关推荐

  1. python中编完类后到实例编写_Python 和 JavaScript 的区别是什么?

    原标题:Python 和 JavaScript 的区别是什么? JavaScript和Python这两种语言非常流行和强大,但它们在部分语法的使用上却有着一些不同,如果你恰好对这些区别对比感兴趣,那么 ...

  2. [转载] Python中的Phyllotaxis模式| 算法植物学的一个单位

    参考链接: Python中的Phyllotaxis模式| 算法植物学的单位 简介| 叶底   Phyllotaxis / phyllotaxy是植物茎上叶子的排列,Phyllotactic螺旋形成自然 ...

  3. Python中list(列表)、tuple(元组)、dict(字典)的基本操作快速入门

    最近看了一下Python,觉得Python中列表.字典以及元组等比较常用,于是顺手简单的总结了一下. 1.列表是Python中比较常用的数据类型,并且列表是可以改变的,使用也非常简单,具体操作如下: ...

  4. Python中序列、列表、元祖(数组)、集合、字典

    序列 序列的两个特点:  1.索引操作符,从序列中抓取一个特定项目  2.和切片操作符,获取序列的一个切片,即一部分序列 Python一些内置函数  1.cmp(A, B):比较可为list.tupl ...

  5. python中split的用法取第二个分片_python中split()函数的用法

    函数:split() Python中有split()和os.path.split()两个函数,具体作用如下: split():拆分字符串.通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(li ...

  6. python中不能使用下标运算的有哪些_Python中最常见的10个问题(列表)

    列表是Python中使用最多的一种数据结果,如何高效操作列表是提高代码运行效率的关键,这篇文章列出了10个常用的列表操作,希望对你有帮助. 注意:很多人学Python过程中会遇到各种烦恼问题,没有人帮 ...

  7. python中、函数定义可以不包括以下_python函数定义精讲

    原标题:python函数定义精讲 在 Python 中,你也可以定义包含若干参数的函数.这里有三种可用的形式,也可以混合使用. 默认参数值 最常用的一种形式是为一个或多个参数指定默认值.这会创建一个可 ...

  8. python中实现多路分支的最佳控制结构是_python程序设计答案

    [单选题]for i in range(0,2): print(i) 哪个选项是以上程序的输出结果? (4.0分) [简答题]定义一个类代表三角形,类中包含三条边.求周长的函数.求面积的函数. (30 ...

  9. python中哪些类型数据是不可变的_python的可变与不可变数据类型

    首先,我们需要知道在python中哪些是可变数据类型,哪些是不可变数据类型.可变数据类型:列表list和字典dict:不可变数据类型:整型int.浮点型float.字符串型string和元组tuple ...

最新文章

  1. C++ 笔记(19)— 标准模板库(STL容器、STL迭代器、STL算法、STL容器特点、STL字符串类)
  2. Java源码详解三:Hashtable源码分析--openjdk java 11源码
  3. [转]ASP.NET效率陷阱——Attributes
  4. 【luogu2737】 [USACO4.1]麦香牛块Beef McNuggets [动态规划 完全背包][数学 扩展欧几里德]...
  5. Netty之自定义编码器MessageToMessageEncoder类
  6. redis学习——数据类型
  7. k2698场效应管参数电流_mos管特性曲线-电流方程与参数详解
  8. mongodb的文档游标
  9. SAS学习经验总结分享:篇五-过程步的应用
  10. 如何设计一个好看的 404 错误页面 ?
  11. Python 使用正则进行过滤字母、数字及特殊字符
  12. 好听的女孩名字2225个 懿婕、馨媛、雨熙、若涵、馨瑜、瑾涵、羽欣、琪悦、逸菲、馨瑜、雨婷、昕妤、婉婷、梦琪、馨月、佳瑜、晓琦、婷瑛、诗琪、瑾瑜、艺琳、雨婷、欣怡、诗雨、佳琪、悦涵、昕瑶、蓓佳、诗萌、
  13. Java选出偶数,Java 定义集合存入20个随机数字,通过自定义方法筛选偶数元素,放入新集合,打印输出...
  14. 2020-01-16
  15. Ardupilot多旋翼自动规划路径实现绕开障碍物避障
  16. 网站商务通与百度商桥的区别
  17. html弹出div弹窗
  18. 面试官谈游戏开发入行--选择
  19. 深入理解Linux网络技术内幕(十)——帧的接收
  20. py3+requests+urllib+bs4+threading,爬取斗图图片

热门文章

  1. 《扬州慢·淮左名都》 姜夔
  2. ubuntu20.04开机进入emergency mode解决办法
  3. openwrt ec20 4g网卡使用
  4. 【python】奥特曼打小怪兽文字游戏
  5. pyhton微博爬虫(2)——获取微博用户关注列表
  6. 用云服务器windows环境下来搭建一个Minecraft服务器教程以及客户端使用教程java版
  7. Android内核驱动——电源管理
  8. 互联网早报:腾讯搜狗即将完成初步整合:搜狗核心团队并入腾讯看点,王小川未来或离任
  9. U盘病毒mydocuments.exe查杀办法总结
  10. 【C语言函数参数详解】——实际参数(实参)形式参数(形参)