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中time()方法的使用的教程
May 22 Python
python读取和保存视频文件
Apr 16 Python
Python中创建二维数组
Oct 17 Python
Python多版本开发环境管理工具介绍
Jul 03 Python
Python调用C语言的实现
Jul 26 Python
python 实现识别图片上的数字
Jul 30 Python
在python shell中运行python文件的实现
Dec 21 Python
在python中使用pyspark读写Hive数据操作
Jun 06 Python
Python unittest装饰器实现原理及代码
Sep 08 Python
python中用Scrapy实现定时爬虫的实例讲解
Jan 18 Python
Linux系统下升级pip的完整步骤
Jan 31 Python
分析Python感知线程状态的解决方案之Event与信号量
Jun 16 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
PHP查询网站的PR值
2013/10/30 PHP
php将金额数字转化为中文大写
2015/07/09 PHP
标准版Eclipse搭建PHP环境的详细步骤
2015/11/18 PHP
在WordPress的文章编辑器中设置默认内容的方法
2015/12/29 PHP
Thinkphp框架开发移动端接口(1)
2016/08/18 PHP
iis 7下安装laravel 5.4环境的方法教程
2017/06/14 PHP
javascript CSS画图之基础篇
2009/07/29 Javascript
niceTitle 基于jquery的超链接提示插件
2010/05/31 Javascript
JavaScript面向对象程序设计三 原型模式(上)
2011/12/21 Javascript
javascript中打印当前的时间实现思路及代码
2013/12/18 Javascript
扩展jQuery对象时如何扩展成员变量具体怎么实现
2014/04/25 Javascript
node.js中的console.dir方法使用说明
2014/12/10 Javascript
详解Wondows下Node.js使用MongoDB的环境配置
2016/03/01 Javascript
必备的JS调试技巧汇总
2016/07/20 Javascript
用瀑布流的方式在网页上插入图片的简单实现方法
2016/09/23 Javascript
vue计算属性及使用详解
2018/04/02 Javascript
js字符串倒序的实例代码
2018/11/30 Javascript
详解iview的checkbox多选框全选时校验问题
2019/06/10 Javascript
开发中常用的25个JavaScript单行代码(小结)
2019/06/28 Javascript
python控制台显示时钟的示例
2014/02/24 Python
Python Web框架Flask信号机制(signals)介绍
2015/01/01 Python
PyTorch上搭建简单神经网络实现回归和分类的示例
2018/04/28 Python
pyqt5 实现多窗口跳转的方法
2019/06/19 Python
Django的用户模块与权限系统的示例代码
2019/07/24 Python
python、PyTorch图像读取与numpy转换实例
2020/01/13 Python
Python Django form 组件动态从数据库取choices数据实例
2020/05/19 Python
python3 re返回形式总结
2020/11/20 Python
利用纯css3实现的文字亮光特效的代码演示
2014/11/27 HTML / CSS
ALDO英国官网:加拿大女鞋品牌
2018/02/19 全球购物
计算机学生求职信范文
2014/01/30 职场文书
《大作家的小老师》教学反思
2014/04/16 职场文书
学习雷锋精神演讲稿
2014/05/10 职场文书
2014坚持党风廉政建设思想汇报
2014/09/18 职场文书
2019幼儿教师求职信(3篇)
2019/09/20 职场文书
python使用tkinter实现透明窗体上绘制随机出现的小球(实例代码)
2021/05/17 Python
Python合并多张图片成PDF
2021/06/09 Python