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 相关文章推荐
在Windows8上的搭建Python和Django环境
Jul 03 Python
python插入排序算法实例分析
Jul 03 Python
python dict 字典 以及 赋值 引用的一些实例(详解)
Jan 20 Python
Python3爬虫学习之MySQL数据库存储爬取的信息详解
Dec 12 Python
Python可变参数会自动填充前面的默认同名参数实例
Nov 18 Python
Python基于Tensor FLow的图像处理操作详解
Jan 15 Python
Pyspark获取并处理RDD数据代码实例
Mar 27 Python
基于Python爬虫采集天气网实时信息
Jun 05 Python
python中rc1什么意思
Jun 19 Python
python 实现图片批量压缩的示例
Dec 18 Python
Python Socket编程详解
Apr 25 Python
详解Python中*args和**kwargs的使用
Apr 07 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操作MongoDB时的整数问题及对策说明
2011/05/02 PHP
php使用curl检测网页是否被百度收录的示例分享
2014/01/31 PHP
CodeIgniter配置之config.php用法实例分析
2016/01/19 PHP
php一个文件搞定微信jssdk配置
2016/12/12 PHP
laravel5.4生成验证码的实例讲解
2017/08/05 PHP
thinkPHP5项目中实现QQ第三方登录功能
2017/10/20 PHP
JS 页面内容搜索,类似于 Ctrl+F功能的实现代码
2007/08/13 Javascript
javascript复制对象使用说明
2011/06/28 Javascript
javascipt基础内容--需要注意的细节
2013/04/10 Javascript
用js实现控件的隐藏及style.visibility的使用
2013/06/14 Javascript
javascript:文字不间断向左移动的实例代码
2013/08/08 Javascript
AngularJs动态加载模块和依赖注入详解
2016/01/11 Javascript
JS中取二维数组中最大值的方法汇总
2016/04/17 Javascript
Angularjs分页查询的实现
2017/02/24 Javascript
深入理解JS的事件绑定、事件流模型
2018/05/13 Javascript
基于vue2.0的活动倒计时组件countdown(附源码下载)
2018/10/09 Javascript
Vue双向数据绑定(MVVM)的原理
2020/10/03 Javascript
vue使用swiper实现左右滑动切换图片
2020/10/16 Javascript
[00:27]DOTA2荣耀之路2:Patience from zhou!
2018/05/24 DOTA
python插入排序算法的实现代码
2013/11/21 Python
Python线程创建和终止实例代码
2018/01/20 Python
Python3实现的简单验证码识别功能示例
2018/05/02 Python
python3使用smtplib实现发送邮件功能
2018/05/22 Python
在python中计算ssim的方法(与Matlab结果一致)
2019/12/19 Python
Python求两个字符串最长公共子序列代码实例
2020/03/05 Python
Canvas 文本填充线性渐变的使用详解
2020/06/22 HTML / CSS
西班牙香水和化妆品连锁店:Druni
2019/05/05 全球购物
工业自动化专业自荐信范文
2014/04/10 职场文书
2015年幼儿园教研活动总结
2015/03/25 职场文书
遗愿清单观后感
2015/06/09 职场文书
百善孝为先:关于孝道的经典语录
2019/10/18 职场文书
python 爬取豆瓣网页的示例
2021/04/13 Python
JS如何使用剪贴板操作Clipboard API
2021/05/17 Javascript
Redis高并发防止秒杀超卖实战源码解决方案
2021/11/01 Redis
Python requests用法和django后台处理详解
2022/03/19 Python
Golang 字符串的常见操作
2022/04/19 Golang