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 相关文章推荐
Numpy中矩阵matrix读取一列的方法及数组和矩阵的相互转换实例
Jul 02 Python
Python实现网站表单提交和模板
Jan 15 Python
在pycharm中设置显示行数的方法
Jan 16 Python
对python中的控制条件、循环和跳出详解
Jun 24 Python
使用python实现滑动验证码功能
Aug 05 Python
python实现复制文件到指定目录
Oct 16 Python
python递归调用中的坑:打印有值, 返回却None
Mar 16 Python
解决jupyter notebook 出现In[*]的问题
Apr 13 Python
Python基于numpy模块实现回归预测
May 14 Python
Python wordcloud库安装方法总结
Dec 31 Python
python 统计list中各个元素出现的次数的几种方法
Feb 20 Python
python利用opencv实现颜色检测
Feb 23 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校验公钥是否可用的实例方法
2019/09/17 PHP
关于js日期转化为毫秒数“节省20%的效率和和节省9个字符“问题
2012/03/01 Javascript
js局部刷新页面时间具体实现
2013/07/04 Javascript
js 遍历json返回的map内容示例代码
2013/10/29 Javascript
用nodejs实现PHP的print_r函数代码
2014/03/14 NodeJs
当滚动条滚动到页面底部自动加载增加内容的js代码
2014/05/13 Javascript
详解AngularJS中的http拦截
2016/02/09 Javascript
Jquery获取第一个子元素简单实例
2016/06/02 Javascript
全面接触神奇的Bootstrap导航条实战篇
2016/08/01 Javascript
利用jQuery插件imgAreaSelect实现获得选择域的图像信息
2016/12/02 Javascript
JavaScript使用享元模式实现文件上传优化操作示例
2018/08/07 Javascript
发布订阅模式在vue中的实际运用实例详解
2019/06/09 Javascript
手写Vue弹窗Modal的实现代码
2019/09/11 Javascript
基于vue.js实现购物车
2020/01/15 Javascript
js实现页面导航层级指示效果
2020/08/25 Javascript
[01:02:32]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第二场 2月26日
2021/03/11 DOTA
深入理解python中的浅拷贝和深拷贝
2016/05/30 Python
浅谈pandas中DataFrame关于显示值省略的解决方法
2018/04/08 Python
pandas 快速处理 date_time 日期格式方法
2018/11/12 Python
Python实现基于socket的udp传输与接收功能详解
2019/11/15 Python
Python3连接Mysql8.0遇到的问题及处理步骤
2020/02/17 Python
Python使用re模块验证危险字符
2020/05/21 Python
解析Tensorflow之MNIST的使用
2020/06/30 Python
分享全球十款超强HTML5开发工具
2014/05/14 HTML / CSS
澳大利亚办公室装修:JasonL Office Furniture
2019/06/25 全球购物
Araks官网:纽约内衣品牌
2020/10/15 全球购物
空指针到底是什么
2012/08/07 面试题
傲盾软件面试题
2015/08/17 面试题
酒店管理专业学生求职信
2013/09/27 职场文书
2013年入党人员的自我鉴定
2013/10/25 职场文书
高中生学习的自我评价
2013/12/14 职场文书
个人评价范文分享
2014/01/11 职场文书
法制宣传实施方案
2014/03/13 职场文书
服装采购员岗位职责
2014/03/15 职场文书
2014年保安个人工作总结
2014/11/13 职场文书
Python中的turtle画箭头,矩形,五角星
2022/03/16 Python