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网络编程之文件下载实例分析
May 20 Python
详解Python的collections模块中的deque双端队列结构
Jul 07 Python
Python新手们容易犯的几个错误总结
Apr 01 Python
python numpy数组的索引和切片的操作方法
Oct 20 Python
浅谈PYTHON 关于文件的操作
Mar 19 Python
python在openstreetmap地图上绘制路线图的实现
Jul 11 Python
对django views中 request, response的常用操作详解
Jul 17 Python
Python3.8对可迭代解包的改进及用法详解
Oct 15 Python
Python 格式化输出_String Formatting_控制小数点位数的实例详解
Feb 04 Python
解决Pycharm 导入其他文件夹源码的2种方法
Feb 12 Python
tensorflow保持每次训练结果一致的简单实现
Feb 17 Python
Python gevent协程切换实现详解
Sep 14 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的ASP防火墙
2006/10/09 PHP
开发大型 PHP 项目的方法
2007/01/02 PHP
php继承的一个应用
2011/09/06 PHP
redis查看连接数及php模拟并发创建redis连接的方法
2016/12/15 PHP
几行代码轻松实现PHP文件打包下载zip
2017/03/01 PHP
PHP MVC框架中类的自动加载机制实例分析
2019/09/18 PHP
jquery实现Li滚动时滚动条自动添加样式的方法
2015/08/10 Javascript
jQuery中hover与mouseover和mouseout的区别分析
2015/12/24 Javascript
jQuery事件绑定on()与弹窗实现代码
2016/04/28 Javascript
在JavaScript中模拟类(class)及类的继承关系
2016/05/20 Javascript
Bootstrap CSS组件之按钮组(btn-group)
2016/12/17 Javascript
Angular-Touch库用法示例
2016/12/22 Javascript
轻松实现jQuery添加删除按钮Click事件
2017/03/13 Javascript
jQuery插件FusionCharts绘制ScrollColumn2D图效果示例【附demo源码下载】
2017/03/22 jQuery
JS中SetTimeout和SetInterval使用初探
2017/03/23 Javascript
Vue.js点击切换按钮改变内容的实例讲解
2018/08/22 Javascript
js计算最大公约数和最小公倍数代码实例
2019/09/11 Javascript
Vue最新防抖方案(必看篇)
2019/10/30 Javascript
Vue数字输入框组件使用方法详解
2020/02/10 Javascript
在GitHub Pages上使用Pelican搭建博客的教程
2015/04/25 Python
Python使用openpyxl读写excel文件的方法
2017/06/30 Python
Python实现类的创建与使用方法示例
2017/07/25 Python
python得到qq句柄,并显示在前台的方法
2018/10/14 Python
Django 框架模型操作入门教程
2019/11/05 Python
python实现PDF中表格转化为Excel的方法
2020/06/16 Python
Sandro Paris美国官网:典雅别致的法国时尚服饰品牌
2017/12/26 全球购物
美国气象仪器、花园装饰和墙壁艺术商店:Wind & Weather
2019/05/29 全球购物
介绍一下Ruby的特点
2013/01/20 面试题
最常使用的求职信
2014/05/25 职场文书
单位在职证明书
2014/09/11 职场文书
2014年会计个人工作总结
2014/11/24 职场文书
高中生毕业评语
2014/12/30 职场文书
个人总结格式范文
2015/03/09 职场文书
安全教育培训制度
2015/08/06 职场文书
车辆挂靠协议书
2016/03/23 职场文书
python Tkinter模块使用方法详解
2022/04/07 Python