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 相关文章推荐
wxpython学习笔记(推荐查看)
Jun 09 Python
python操作redis的方法
Jul 07 Python
python简单图片操作:打开\显示\保存图像方法介绍
Nov 23 Python
教你使用python画一朵花送女朋友
Mar 29 Python
python 字典 按key值大小 倒序取值的实例
Jul 06 Python
python2.7和NLTK安装详细教程
Sep 19 Python
Python中创建二维数组
Oct 17 Python
Python QQBot库的QQ聊天机器人
Jun 19 Python
Python:slice与indices的用法
Nov 25 Python
基于python plotly交互式图表大全
Dec 07 Python
在tensorflow中设置保存checkpoint的最大数量实例
Jan 21 Python
python cv2.resize函数high和width注意事项说明
Jul 05 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
eAccelerator的安装与使用详解
2013/06/13 PHP
php伪静态之APACHE篇
2014/06/02 PHP
实例介绍PHP的Reflection反射机制
2014/08/05 PHP
php检查字符串中是否包含7位GSM字符的方法
2015/03/17 PHP
深入了解PHP中的Array数组和foreach
2016/11/06 PHP
PHP无限极分类函数的实现方法详解
2017/04/15 PHP
php中加密解密DES类的简单使用方法示例
2020/03/26 PHP
jQuery 菜单随滚条改为以定位方式(固定要浏览器顶部)
2012/05/24 Javascript
利用JS实现浏览器的title闪烁
2013/07/08 Javascript
使用jquery的ajax需要注意的地方dataType的设置
2013/08/12 Javascript
前台js调用后台方法示例
2013/12/02 Javascript
javascript中typeof的使用示例
2013/12/19 Javascript
jquery easyui combox一些实用的小方法
2013/12/25 Javascript
JQuery实现表格动态增加行并对新行添加事件
2014/07/30 Javascript
PhotoShop给图片自动添加边框及EXIF信息的JS脚本
2015/02/15 Javascript
JavaScript学习笔记--常用的互动方法
2016/12/07 Javascript
js实现自动轮换选项卡
2017/01/13 Javascript
jacascript DOM节点——元素节点、属性节点、文本节点
2017/04/18 Javascript
jQuery Plupload上传插件的使用
2017/04/19 jQuery
Js跳出两级循环方法代码实例
2020/09/22 Javascript
jquery插件实现轮播图效果
2020/10/19 jQuery
[51:32]Optic vs Serenity 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
Pyhton中防止SQL注入的方法
2015/02/05 Python
在Django中管理Users和Permissions以及Groups的方法
2015/07/23 Python
python3.6+opencv3.4实现鼠标交互查看图片像素
2018/02/26 Python
解决python 自动安装缺少模块的问题
2018/10/22 Python
Python读取csv文件分隔符设置方法
2019/01/14 Python
浅谈keras通过model.fit_generator训练模型(节省内存)
2020/06/17 Python
python两个list[]相加的实现方法
2020/09/23 Python
英国女士和男士时尚服装网上购物:Top Labels Online
2018/03/25 全球购物
本科生求职简历的自我评价
2013/10/21 职场文书
大学生个人自荐信样本
2014/03/02 职场文书
令人印象深刻的自荐信
2014/05/25 职场文书
中秋手机店促销方案
2014/06/16 职场文书
父亲去世追悼词
2015/06/23 职场文书
Golang 并发下的问题定位及解决方案
2022/03/16 Golang