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 相关文章推荐
视觉直观感受若干常用排序算法
Apr 13 Python
用python实现对比两张图片的不同
Feb 05 Python
Python实现从log日志中提取ip的方法【正则提取】
Mar 31 Python
pandas 使用apply同时处理两列数据的方法
Apr 20 Python
将python代码和注释分离的方法
Apr 21 Python
Python 读写文件的操作代码
Sep 20 Python
Python中的pathlib.Path为什么不继承str详解
Jun 23 Python
python实现共轭梯度法
Jul 03 Python
python使用turtle库绘制奥运五环
Feb 24 Python
python使用pandas抽样训练数据中某个类别实例
Feb 28 Python
python微信公众号开发简单流程实现
Mar 09 Python
4种非常实用的python内置数据结构
Apr 28 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单件模式结合命令链模式使用说明
2008/09/07 PHP
PHP+Mysql日期时间如何转换(UNIX时间戳和格式化日期)
2012/07/15 PHP
PHP高级编程实例:编写守护进程
2014/09/02 PHP
php5.4以上版本GBK编码下htmlspecialchars输出为空问题解决方法汇总
2015/04/03 PHP
PHP 7.0.2 正式版发布
2016/01/08 PHP
ArrayList类(增强版)
2007/04/04 Javascript
在线编辑器中换行与内容自动提取
2009/04/24 Javascript
JavaScript CSS修改学习第六章 拖拽
2010/02/19 Javascript
Js切换功能的简单方法
2010/11/23 Javascript
JQuery实现用户名无刷新验证的小例子
2013/03/22 Javascript
javascript的parseFloat()方法精度问题探讨
2013/11/26 Javascript
jquery checkbox实现单选小例
2013/11/27 Javascript
ie浏览器使用js导出网页到excel并打印
2014/03/11 Javascript
node.js中的buffer.Buffer.isBuffer方法使用说明
2014/12/14 Javascript
js的toLowerCase方法用法实例
2015/01/27 Javascript
简述JavaScript的正则表达式中test()方法的使用
2015/06/16 Javascript
jQuery实现列表内容的动态载入特效
2015/08/08 Javascript
js实现网站最上边可关闭的浮动广告条代码
2015/09/04 Javascript
JavaScript常用本地对象小结
2016/03/28 Javascript
Javascript中for循环语句的几种写法总结对比
2017/01/23 Javascript
JavaScript实现时钟滴答声效果
2017/01/29 Javascript
vue+webpack实现异步组件加载的方法
2018/02/03 Javascript
微信小程序实现红包雨功能
2018/07/11 Javascript
vue使用Google地图的实现示例代码
2018/12/19 Javascript
利用Vconsole和Fillder进行移动端抓包调试方法
2019/03/05 Javascript
微信小程序登陆注册功能的实现代码
2019/12/10 Javascript
小程序分享链接onShareAppMessage的具体用法
2020/05/22 Javascript
对Python 内建函数和保留字详解
2018/10/15 Python
使用Scrapy爬取动态数据
2018/10/21 Python
python 安装库几种方法之cmd,anaconda,pycharm详解
2020/04/08 Python
Python基于BeautifulSoup爬取京东商品信息
2020/06/01 Python
python中加背景音乐如何操作
2020/07/19 Python
总经理驾驶员岗位职责
2013/12/04 职场文书
《会变的花树叶》教学反思
2014/02/10 职场文书
药剂专业求职信
2014/06/20 职场文书
2014年打非治违工作总结
2014/11/13 职场文书