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实现扫描指定目录下的子目录及文件的方法
Jul 16 Python
利用Python绘制数据的瀑布图的教程
Apr 07 Python
简单介绍Python中的JSON模块
Apr 08 Python
Python实现合并两个列表的方法分析
May 28 Python
利用python画出折线图
Jul 26 Python
Django实现一对多表模型的跨表查询方法
Dec 18 Python
Python pycharm 同时加载多个项目的方法
Jan 17 Python
用Python实现将一张图片分成9宫格的示例
Jul 05 Python
对Tensorflow中Device实例的生成和管理详解
Feb 04 Python
Python版中国省市经纬度
Feb 11 Python
在jupyter notebook 添加 conda 环境的操作详解
Apr 10 Python
OpenCV+python实现膨胀和腐蚀的示例
Dec 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图形jpgraph操作实例分析
2017/02/22 PHP
Javascript学习笔记之 函数篇(二) : this 的工作机制
2014/06/24 Javascript
jQuery ajax serialize() 方法使用示例
2014/11/02 Javascript
Javascript解析URL方法详解
2014/12/05 Javascript
Bootstrap每天必学之标签与徽章
2015/11/27 Javascript
jQuery插件实现适用于移动端的地址选择器
2016/02/18 Javascript
jQuery实现TAB选项卡切换特效简单演示
2016/03/04 Javascript
Centos7 中安装 Node.js v4.4.4
2016/11/03 Javascript
jquery UI Datepicker时间控件冲突问题解决
2016/12/16 Javascript
Linux系统中利用node.js提取Word(doc/docx)及PDF文本的内容
2017/06/17 Javascript
vue-resouce设置请求头的三种方法
2017/09/12 Javascript
vue使用element-ui的el-input监听不了回车事件的解决方法
2018/01/12 Javascript
layer.close()关闭进度条和Iframe窗的方法
2018/08/17 Javascript
vue 左滑删除功能的示例代码
2019/01/28 Javascript
解决Vue+Electron下Vuex的Dispatch没有效果问题
2019/05/20 Javascript
vue中 this.$set的用法详解
2019/09/06 Javascript
vue实现直播间点赞飘心效果的示例代码
2019/09/20 Javascript
微信小程序实现点击生成随机验证码
2020/09/09 Javascript
[05:34]2014DOTA2国际邀请赛中国区预选赛精彩TOPPLAY第二弹
2014/06/25 DOTA
python使用win32com在百度空间插入html元素示例
2014/02/20 Python
在Mac OS上使用mod_wsgi连接Python与Apache服务器
2015/12/24 Python
Python使用修饰器执行函数的参数检查功能示例
2017/09/26 Python
Python在不同目录下导入模块的实现方法
2017/10/27 Python
python和flask中返回JSON数据的方法
2018/03/26 Python
Python实现监控键盘鼠标操作示例【基于pyHook与pythoncom模块】
2018/09/04 Python
django框架模板中定义变量(set variable in django template)的方法分析
2019/06/24 Python
Python单例模式的四种创建方式实例解析
2020/03/04 Python
Jupyter Notebook远程登录及密码设置操作
2020/04/10 Python
PyCharm中配置PySide2的图文教程
2020/06/18 Python
Python发送邮件实现基础解析
2020/08/14 Python
canvas需要在标签里直接定义宽高
2014/12/17 HTML / CSS
舞蹈专业大学生职业规划范文
2014/03/12 职场文书
社区两委对照检查材料
2014/08/23 职场文书
撤诉申请怎么写
2015/05/19 职场文书
董事长开业致辞
2015/07/29 职场文书
新手开公司创业注意事项有哪些?
2019/07/29 职场文书