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 pass 语句使用示例
Mar 11 Python
Python实现将xml导入至excel
Nov 20 Python
Python中常用操作字符串的函数与方法总结
Feb 04 Python
python 使用sys.stdin和fileinput读入标准输入的方法
Oct 17 Python
Python自定义一个类实现字典dict功能的方法
Jan 19 Python
基于Python实现用户管理系统
Feb 26 Python
python3 json数据格式的转换(dumps/loads的使用、dict to str/str to dict、json字符串/字典的相互转换)
Apr 01 Python
Python基于WordCloud制作词云图
Nov 29 Python
基于Python检测动态物体颜色过程解析
Dec 04 Python
python json 递归打印所有json子节点信息的例子
Feb 27 Python
python3美化表格数据输出结果的实现代码
Apr 14 Python
Python内置类型集合set和frozenset的使用详解
Apr 26 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正则的Unknown Modifier错误解决方法
2010/03/02 PHP
php多层数组与对象的转换实例代码
2013/08/05 PHP
php实现的支持imagemagick及gd库两种处理的缩略图生成类
2014/09/23 PHP
php删除txt文件指定行及按行读取txt文档数据的方法
2017/01/30 PHP
PHP使用preg_split()分割特殊字符(元字符等)的方法分析
2017/02/04 PHP
JavaScript 计算当天是本年本月的第几周
2009/03/22 Javascript
javascript 伪数组实现方法
2010/10/11 Javascript
jQuery-Tools-overlay 使用介绍
2012/07/14 Javascript
JavaScript使用指针操作实现约瑟夫问题实例
2015/04/07 Javascript
Javascript函数式编程语言
2015/10/11 Javascript
javascript数组克隆简单实现方法
2015/12/16 Javascript
原生js编写基于面向对象的分页组件
2016/12/05 Javascript
vue动态组件实现选项卡切换效果
2017/03/08 Javascript
Jquery把获取到的input值转换成json
2017/05/15 jQuery
vue中SPA单页面应用程序详解
2017/11/07 Javascript
Vue动态修改网页标题的方法及遇到问题
2019/06/09 Javascript
[04:13]2018国际邀请赛典藏宝瓶Ⅱ饰品一览
2018/07/21 DOTA
通过python下载FTP上的文件夹的实现代码
2013/02/10 Python
python BeautifulSoup使用方法详解
2013/11/21 Python
Python简单实现enum功能的方法
2016/04/25 Python
python3学习笔记之多进程分布式小例子
2018/02/13 Python
python实现内存监控系统
2021/03/07 Python
python3实现随机数
2018/06/25 Python
Python打开文件、文件读写操作、with方式、文件常用函数实例分析
2020/01/07 Python
python第三方库学习笔记
2020/02/07 Python
浅析python 动态库m.so.1.0错误问题
2020/05/09 Python
浅谈Python程序的错误:变量未定义
2020/06/02 Python
澳大利亚首屈一指的在线购物目的地:Kogan.com
2017/02/02 全球购物
Osklen官方在线商店:巴西服装品牌
2019/04/25 全球购物
书法大赛策划方案
2014/06/04 职场文书
建设办主任四风问题整改思路和措施
2014/09/20 职场文书
高中生旷课检讨书
2014/10/08 职场文书
大学生求职自荐信范文
2015/03/04 职场文书
汶川大地震感悟
2015/08/10 职场文书
详解如何在Canvas中添加事件的方法
2021/04/17 Javascript
mysql中between的边界,范围说明
2021/06/08 MySQL