Python合并两个字典的常用方法与效率比较


Posted in Python onJune 17, 2015

本文实例讲述了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, et-st) 
t(f1, 'f1') 
t(f2, 'f2') 
t(f3, 'f3') 
t(f4, 'f4') 
t(f5, 'f5') 
t(f6, 'f6') 
t(f7, 'f7')

除了f4方法会对字典d1造成破坏性修改之外,另外的几种方法都是把合并的结果作为新的字典返回。

下面是测试结果:

f1 cost:2.382999897 
f2 cost:4.45399999619 
f3 cost:3.02100014687 
f4 cost:1.73000001907 
f5 cost:2.3710000515 
f6 cost:2.89700007439 
f7 cost:2.35600018501

可以看出f4最为高效,如果不需要保留原字典的话推荐使用f4方法。

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
python读写ini文件示例(python读写文件)
Mar 25 Python
python使用线程封装的一个简单定时器类实例
May 16 Python
Python中文件的读取和写入操作
Apr 27 Python
Python3数据库操作包pymysql的操作方法
Jul 16 Python
python Tkinter版学生管理系统
Feb 20 Python
Python3.5模块的定义、导入、优化操作图文详解
Apr 27 Python
Python生成指定数量的优惠码实操内容
Jun 18 Python
Python跳出多重循环的方法示例
Jul 03 Python
Python通过递归获取目录下指定文件代码实例
Nov 07 Python
python爬取抖音视频的实例分析
Jan 19 Python
解决pytorch下出现multi-target not supported at的一种可能原因
Feb 06 Python
Python3.10的一些新特性原理分析
Sep 15 Python
Python操作串口的方法
Jun 17 #Python
Python求两个文本文件以行为单位的交集、并集与差集的方法
Jun 17 #Python
Django中模型Model添加JSON类型字段的方法
Jun 17 #Python
Python中map和列表推导效率比较实例分析
Jun 17 #Python
wxPython使用系统剪切板的方法
Jun 16 #Python
Python读取键盘输入的2种方法
Jun 16 #Python
Python本地与全局命名空间用法实例
Jun 16 #Python
You might like
phpmyadmin MySQL 加密配置方法
2009/07/05 PHP
解析php DOMElement 操作xml 文档的实现代码
2013/05/10 PHP
Yii扩展组件编写方法实例分析
2015/06/29 PHP
分享3个php获取日历的函数
2015/09/25 PHP
Windows下PHP开发环境搭建教程(Apache+PHP+MySQL)
2016/06/13 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
2018/02/07 PHP
Mootools 1.2教程(3) 数组使用简介
2009/09/14 Javascript
js判断undefined类型示例代码
2014/02/10 Javascript
Node.js编码规范
2014/07/14 Javascript
javascript去除空格方法小结
2015/05/21 Javascript
jquery移动端TAB触屏切换实现效果
2020/12/22 Javascript
jQuery多选框选择数量限制方法
2017/02/08 Javascript
BootStrap 弹出层代码
2017/02/09 Javascript
JS实现快递单打印功能【推荐】
2018/06/21 Javascript
Vue指令指令大全
2019/02/09 Javascript
重学JS之显示强制类型转换详解
2019/06/30 Javascript
JS实现可控制的进度条
2020/03/25 Javascript
[55:35]DOTA2-DPC中国联赛 正赛 CDEC vs Dragon BO3 第二场 1月22日
2021/03/11 DOTA
为Python的Tornado框架配置使用Jinja2模板引擎的方法
2016/06/30 Python
Python中操作mysql的pymysql模块详解
2016/09/13 Python
python科学计算之narray对象用法
2019/11/25 Python
Python3交互式shell ipython3安装及使用详解
2020/07/11 Python
手机端用rem+scss做适配的详解
2017/11/15 HTML / CSS
美国汽配连锁巨头Pep Boys官网:轮胎更换、汽车维修服务和汽车零部件
2017/01/14 全球购物
世界领先的电子书网站:eBooks.com(在线购买小说、非小说和教科书)
2019/03/30 全球购物
美国家用和厨房电器销售网站:Appliances Connection
2020/01/24 全球购物
高级护理实习生自荐信
2013/09/28 职场文书
酒吧员工的岗位职责
2013/11/26 职场文书
乐观大学生的自我评价
2014/01/10 职场文书
2014县委书记四风对照检查材料思想汇报
2014/09/21 职场文书
工伤事故赔偿协议书范文
2014/09/24 职场文书
销售辞职信范文
2015/03/02 职场文书
幼儿园小班开学寄语
2015/05/27 职场文书
病假条格式范文
2015/08/17 职场文书
《思路决定出路》读后感3篇
2019/12/11 职场文书
使用goaccess分析nginx日志的详细方法
2021/07/09 Servers