python 字典(dict)遍历的四种方法性能测试报告


Posted in Python onJune 25, 2014

python中,遍历dict的方法有四种。但这四种遍历的性能如何呢?我做了如下的测试

l = [(x,x) for x in xrange(10000)]
d = dict(l)

from time import clock

t0=clock()
for i in d:
 t = i + d[i]
t1=clock()

for k,v in d.items():
 t = k + v
t2=clock()

for k,v in d.iteritems():
 t = k + v
t3=clock()

for k,v in zip(d.iterkeys(),d.itervalues()):
 t = k + v
t4=clock()

print t1-t0, t2-t1, t3-t2, t4-t3

将这段脚本运行5次,结果如下:

python test.py
0.00184039735833 0.00326492977712 0.00214993552657 0.00311549755797

python test.py
0.00182356570728 0.00339342506446 0.00234863111466 0.00321566640817

python test.py
0.00185107108827 0.00324563495762 0.00211175641563 0.00313479237748

python test.py
0.0018215130669 0.00320950848705 0.00215814608806 0.00322798225041

python test.py
0.00216635664955 0.00391807994377 0.00207604047314 0.00322757172233

显然第一种方法效率最高,第三种方法略差一点但相差无几,方法二四性能就差得多
不过实际的差别不是太大,不必过于纠结

Python 相关文章推荐
用于统计项目中代码总行数的Python脚本分享
Apr 21 Python
Python实现控制台输入密码的方法
May 29 Python
Python实现压缩与解压gzip大文件的方法
Sep 18 Python
python查看模块安装位置的方法
Oct 16 Python
把pandas转换int型为str型的方法
Jan 29 Python
python中pip的使用和修改下载源的方法
Jul 08 Python
Python Pandas对缺失值的处理方法
Sep 27 Python
基于python调用psutil模块过程解析
Dec 20 Python
解决Jupyter Notebook开始菜单栏Anaconda下消失的问题
Apr 13 Python
Django实现任意文件上传(最简单的方法)
Jun 03 Python
python实现代码审查自动回复消息
Feb 01 Python
python实现的人脸识别打卡系统
May 08 Python
用python登录Dr.com思路以及代码分享
Jun 25 #Python
python正则表达式re模块详解
Jun 25 #Python
Python通过websocket与js客户端通信示例分析
Jun 25 #Python
Flask框架学习笔记(一)安装篇(windows安装与centos安装)
Jun 25 #Python
Python中文编码那些事
Jun 25 #Python
教你如何在Django 1.6中正确使用 Signal
Jun 22 #Python
python抓取网页时字符集转换问题处理方案分享
Jun 19 #Python
You might like
php中Smarty模板初体验
2011/08/08 PHP
php自动给文章加关键词链接的函数代码
2012/11/29 PHP
php中的比较运算符详解
2013/10/28 PHP
php常用的安全过滤函数集锦
2014/10/09 PHP
php中socket通信机制实例详解
2015/01/03 PHP
PHP sleep()函数, usleep()函数
2016/08/25 PHP
找到一点可怜的关于dojo资料,谢谢作者!
2006/12/06 Javascript
JavaScript 应用技巧集合[推荐]
2009/08/30 Javascript
js call方法详细介绍(js 的继承)
2013/11/18 Javascript
完美解决IE低版本不支持call与apply的问题
2013/12/05 Javascript
Jquery简单实现GridView行高亮的方法
2015/06/15 Javascript
详解JavaScript的策略模式编程
2015/06/24 Javascript
jQuery实现伪分页的方法分享
2016/02/17 Javascript
Function.prototype.apply()与Function.prototype.call()小结
2016/04/27 Javascript
详解Vue中状态管理Vuex
2017/05/11 Javascript
jQuery实现的表格前端排序功能示例
2017/09/18 jQuery
JS基于设计模式中的单例模式(Singleton)实现封装对数据增删改查功能
2018/02/06 Javascript
微信小程序实现折叠展开效果
2018/07/19 Javascript
区别JavaScript函数声明与变量声明
2018/09/12 Javascript
Nuxt项目支持eslint+pritter+typescript的实现
2019/05/20 Javascript
uploadify插件实现多个图片上传并预览
2019/09/30 Javascript
js 获取扫码枪输入数据的方法
2020/06/10 Javascript
[07:37]DOTA2-DPC中国联赛2月2日Recap集锦
2021/03/11 DOTA
PyQt5实现无边框窗口的标题拖动和窗口缩放
2018/04/19 Python
Python实现全排列的打印
2018/08/18 Python
Python 计算任意两向量之间的夹角方法
2019/07/05 Python
Python检查 云备份进程是否正常运行代码实例
2019/08/22 Python
植村秀加拿大官网:Shu Uemura加拿大
2019/09/03 全球购物
英国标志性生活方式品牌:Skinnydip London
2019/12/15 全球购物
应届生的求职推荐信范文
2013/11/30 职场文书
更夫岗位责任制
2014/02/11 职场文书
市场营销方案范文
2014/03/11 职场文书
乡镇四风对照检查材料
2014/08/31 职场文书
工人先锋号申报材料
2014/12/29 职场文书
关于成立领导小组的通知
2015/04/23 职场文书
不知如何爱孩子,这些方法教会您
2019/08/06 职场文书