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编写的com组件发生R6034错误的原因与解决办法
Apr 01 Python
python类参数self使用示例
Feb 17 Python
Python使用Beautiful Soup包编写爬虫时的一些关键点
Jan 20 Python
利用Python批量生成任意尺寸的图片
Aug 29 Python
python爬虫 爬取58同城上所有城市的租房信息详解
Jul 30 Python
对python中return与yield的区别详解
Mar 12 Python
django使用graphql的实例
Sep 02 Python
Python制作简单的剪刀石头布游戏
Dec 10 Python
Pandas之缺失数据的实现
Jan 06 Python
python 利用matplotlib在3D空间中绘制平面的案例
Feb 06 Python
Pytest allure 命令行参数的使用
Apr 18 Python
Python爬虫之爬取某文库文档数据
Apr 21 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连接mysql数据库代码
2009/03/10 PHP
PHP中nowdoc和heredoc使用需要注意的一点
2014/03/21 PHP
Zend Framework 2.0事件管理器(The EventManager)入门教程
2014/08/11 PHP
详细解读PHP的Yii框架中登陆功能的实现
2015/08/21 PHP
PHP实现可添加水印与生成缩略图的图片处理工具类
2018/01/16 PHP
自己开发Dojo的建议框架
2008/09/24 Javascript
jQuery 第二课 操作包装集元素代码
2010/03/14 Javascript
document.all的一个比较完整的总结及案例
2013/01/31 Javascript
js关于命名空间的函数实例
2015/02/05 Javascript
js用拖动滑块来控制图片大小的方法
2015/02/27 Javascript
javascript运算符语法全面概述
2016/07/14 Javascript
Angularjs单选改为多选的开发过程及问题解析
2017/02/17 Javascript
js中setTimeout的妙用--防止循环超时
2017/03/06 Javascript
详解RequireJS按需加载样式文件
2017/04/12 Javascript
js实现多张图片延迟加载效果
2017/07/17 Javascript
JavaScript伪数组用法实例分析
2017/12/22 Javascript
Vuex的实战使用详解
2019/10/31 Javascript
VSCode launch.json配置详细教程
2020/06/18 Javascript
[44:10]2018DOTA2亚洲邀请赛 4.5 淘汰赛 EG vs VP 第一场
2018/04/06 DOTA
python中map()与zip()操作方法
2016/02/27 Python
Python中xrange与yield的用法实例分析
2017/12/26 Python
Django跨域请求原理及实现代码
2020/11/14 Python
文员个人的求职信范文
2013/09/26 职场文书
应届生会计电算化求职信
2013/10/03 职场文书
集体婚礼证婚词
2014/01/13 职场文书
行政助理工作职责范本
2014/03/04 职场文书
毕业班联欢会主持词
2014/03/27 职场文书
《回乡偶书》教学反思
2014/04/12 职场文书
助人为乐好少年事迹材料
2014/08/18 职场文书
2014年高中教师工作总结
2014/12/19 职场文书
2015年师德师风承诺书
2015/01/22 职场文书
导游词范文
2015/02/13 职场文书
2015年社区环境卫生工作总结
2015/04/21 职场文书
工作失职自我检讨书
2015/05/05 职场文书
学生党支部工作总结2015
2015/05/26 职场文书
2016七一建党节慰问信
2015/11/30 职场文书