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 参数列表中的self 显式不等于冗余
Dec 01 Python
python ElementTree 基本读操作示例
Apr 09 Python
python通过apply使用元祖和列表调用函数实例
May 26 Python
详解Python爬虫的基本写法
Jan 08 Python
Python中方法链的使用方法
Feb 23 Python
如何安装多版本python python2和python3共存以及pip共存
Sep 18 Python
Python中常用的内置方法
Jan 28 Python
浅谈pytorch grad_fn以及权重梯度不更新的问题
Aug 20 Python
解决Python二维数组赋值问题
Nov 28 Python
Python Selenium 设置元素等待的三种方式
Mar 18 Python
Python爬虫开发与项目实战
Dec 16 Python
Python类型转换的魔术方法详解
Dec 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 无限级数据JSON格式及JS解析
2010/07/17 PHP
PHP怎么实现网站保存快捷方式方便用户随时浏览
2013/08/15 PHP
javascript跨域刷新实现代码
2011/01/01 Javascript
javascript模拟实现ajax加载框实例
2014/10/15 Javascript
jquery实现树形菜单完整代码
2015/12/29 Javascript
JavaScript获取客户端IP的方法(新方法)
2016/03/11 Javascript
ECMAScript6--解构
2017/03/30 Javascript
基于Node的React图片上传组件实现实例代码
2017/05/10 Javascript
JavaScript实现简单的双色球(实例讲解)
2017/07/31 Javascript
jQuery实现手势解锁密码特效
2017/08/14 jQuery
vue 中directive功能的简单实现
2018/01/05 Javascript
详解vue静态资源打包中的坑与解决方案
2018/02/05 Javascript
vue写h5页面的方法总结
2019/02/12 Javascript
如何使用 JavaScript 操作浏览器历史记录 API
2020/11/24 Javascript
Python中使用第三方库xlrd来写入Excel文件示例
2015/04/05 Python
Python中的filter()函数的用法
2015/04/27 Python
Python制作爬虫抓取美女图
2016/01/20 Python
详解Python 装饰器执行顺序迷思
2018/08/08 Python
Python使用grequests(gevent+requests)并发发送请求过程解析
2019/09/25 Python
Tensorflow tf.dynamic_partition矩阵拆分示例(Python3)
2020/02/07 Python
Python如何绘制日历图和热力图
2020/08/07 Python
Scrapy+Selenium自动获取cookie爬取网易云音乐个人喜爱歌单
2021/02/01 Python
解决Python import .pyd 可能遇到路径的问题
2021/03/04 Python
CSS3模拟动画下拉菜单效果
2017/04/12 HTML / CSS
详解如何在css3打包后自动追加前缀插件:autoprefixer
2018/12/18 HTML / CSS
基于CSS3的animation属性实现微信拍一拍动画效果
2020/06/22 HTML / CSS
基于HTML5实现类似微信手机摇一摇功能(计算摇动次数)
2017/07/24 HTML / CSS
伯克斯奥特莱斯:Burkes Outlet
2019/03/30 全球购物
JENNIFER BEHR官网:各种耳环和发饰
2020/06/07 全球购物
技术比武方案
2014/05/19 职场文书
2014年教师节寄语
2014/08/11 职场文书
小学安全工作汇报材料
2014/08/19 职场文书
高二数学教学反思
2016/02/18 职场文书
mysql使用FIND_IN_SET和group_concat两个方法查询上下级机构
2022/04/20 MySQL
Python中的matplotlib绘制百分比堆叠柱状图,并为每一个类别设置不同的填充图案
2022/04/20 Python
JavaScript架构localStorage特殊场景下二次封装操作
2022/06/21 Javascript