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中replace方法实例分析
Aug 20 Python
Python抓取淘宝下拉框关键词的方法
Jul 08 Python
Python Socket使用实例
Dec 18 Python
python处理csv数据动态显示曲线实例代码
Jan 23 Python
Python实现的个人所得税计算器示例
Jun 01 Python
python 列表,数组和矩阵sum的用法及区别介绍
Jun 28 Python
Python3 log10()函数简单用法
Feb 19 Python
numpy.random模块用法总结
May 27 Python
python小技巧——将变量保存在本地及读取
Nov 13 Python
cookies应对python反爬虫知识点详解
Nov 25 Python
python制作微博图片爬取工具
Jan 16 Python
Python中字符串对象语法分享
Feb 24 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 异常处理实现代码
2009/03/10 PHP
PHP读取数据库并按照中文名称进行排序实现代码
2013/01/29 PHP
PHP 实现字符串翻转(包含中文汉字)的实现代码
2017/04/01 PHP
PHP多个图片压缩成ZIP的方法
2020/08/18 PHP
基于PHP+Mysql简单实现了图书购物车系统的实例详解
2020/08/06 PHP
jquery HotKeys轻松搞定键盘事件代码
2008/08/30 Javascript
使用隐藏的new来创建对象
2011/03/29 Javascript
JavaScript中为什么null==0为false而null大于=0为true(个人研究)
2013/09/16 Javascript
js取模(求余数)隔行变色
2014/05/15 Javascript
jQuery的animate函数学习记录
2014/08/08 Javascript
JavaScript forEach()遍历函数使用及介绍
2015/07/08 Javascript
如何实现JavaScript动态加载CSS和JS文件
2020/12/28 Javascript
jQuery数据类型小结(14个)
2016/01/08 Javascript
微信开发之调起摄像头、本地展示图片、上传下载图片实例
2016/12/08 Javascript
vue.js的手脚架vue-cli项目搭建的步骤
2017/08/30 Javascript
详解VueRouter进阶之导航钩子和路由元信息
2017/09/13 Javascript
Vue shopCart 组件开发详解
2018/01/26 Javascript
vue中 数字相加为字串转化为数值的例子
2019/11/07 Javascript
python迭代器的使用方法实例
2013/11/21 Python
windows系统中python使用rar命令压缩多个文件夹示例
2014/05/06 Python
Python输出PowerPoint(ppt)文件中全部文字信息的方法
2015/04/28 Python
深入浅出学习python装饰器
2017/09/29 Python
Python利用字典将两个通讯录文本合并为一个文本实例
2018/01/16 Python
Python使用numpy模块创建数组操作示例
2018/06/20 Python
Flask实现图片的上传、下载及展示示例代码
2018/08/03 Python
pandas 快速处理 date_time 日期格式方法
2018/11/12 Python
Python txt文件加入字典并查询的方法
2019/01/15 Python
python+Selenium自动化测试——输入,点击操作
2020/03/06 Python
详解python的super()的作用和原理
2020/10/29 Python
Python字节单位转换(将字节转换为K M G T)
2021/03/02 Python
凯特·丝蓓英国官网:Kate Spade英国
2016/11/07 全球购物
简单叙述一下MYSQL的优化
2016/05/09 面试题
环境卫生倡议书
2014/08/29 职场文书
解除租房协议书
2014/12/03 职场文书
2014小学二年级班主任工作总结
2014/12/05 职场文书
2016年10月份红领巾广播稿
2015/12/21 职场文书