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不带重复的全排列代码
Aug 13 Python
python将xml xsl文件生成html文件存储示例讲解
Dec 03 Python
[原创]教女朋友学Python3(二)简单的输入输出及内置函数查看
Nov 30 Python
浅谈pyqt5在QMainWindow中布局的问题
Jun 21 Python
python的pstuil模块使用方法总结
Jul 26 Python
Django 大文件下载实现过程解析
Aug 01 Python
Python 实现大整数乘法算法的示例代码
Sep 17 Python
Python3.7 pyodbc完美配置访问access数据库
Oct 03 Python
Selenium python时间控件输入问题解决方案
Jul 22 Python
python 使用三引号时容易犯的小错误
Oct 21 Python
Python reversed反转序列并生成可迭代对象
Oct 22 Python
python Autopep8实现按PEP8风格自动排版Python代码
Mar 02 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中Smarty模板初体验
2011/08/08 PHP
PHP+APACHE实现网址伪静态
2015/02/22 PHP
PHP5.3以上版本安装ZendOptimizer扩展
2015/03/27 PHP
php实现的mongodb操作类
2015/05/28 PHP
php bootstrap实现简单登录
2016/03/08 PHP
一个css与js结合的下拉菜单支持主流浏览器
2014/10/08 Javascript
JavaScript学习笔记整理之引用类型
2016/01/22 Javascript
一分钟理解js闭包
2016/05/04 Javascript
Javascript将双字节字符转换成单字节字符并计算长度
2016/06/22 Javascript
Javascript 实现放大镜效果实例详解
2016/12/03 Javascript
详解Jquery EasyUI tree 的异步加载(遍历指定文件夹,根据文件夹内的文件生成tree)
2017/02/11 Javascript
BootStrap的两种模态框方式
2017/05/10 Javascript
详解用vue.js和laravel实现微信授权登陆
2017/06/23 Javascript
AngularJS 的$timeout服务示例代码
2017/09/21 Javascript
使用Bootstrap + Vue.js实现表格的动态展示、新增和删除功能
2017/11/27 Javascript
微信小程序下拉加载和上拉刷新两种实现方法详解
2019/09/05 Javascript
vue2路由方式--嵌套路由实现方法分析
2020/03/06 Javascript
python re正则表达式模块(Regular Expression)
2014/07/16 Python
零基础写python爬虫之使用Scrapy框架编写爬虫
2014/11/07 Python
Python下rrdtool模块的基本使用方法
2015/11/13 Python
Python实现确认字符串是否包含指定字符串的实例
2018/05/02 Python
Django model update的多种用法介绍
2020/03/28 Python
CSS3教程(9):设置RGB颜色
2009/04/02 HTML / CSS
魔幻般冒泡背景的CSS3按钮动画
2016/02/27 HTML / CSS
浅谈基于HTML5的在线视频播放方案
2016/02/18 HTML / CSS
美国女性卫生用品公司:Thinx
2017/06/30 全球购物
女孩每月服装订阅盒:kidpik
2019/04/17 全球购物
如何配置、使用和清除Smarty缓存
2015/12/23 面试题
sort命令的作用和用法
2013/08/25 面试题
大专毕业生简历的自我评价
2013/10/20 职场文书
会计顶岗实习心得
2014/01/25 职场文书
初中班主任寄语
2014/04/04 职场文书
2014教师个人自我评价范文
2014/09/13 职场文书
2015羊年春节慰问信
2015/02/14 职场文书
社区党务工作总结2015
2015/05/19 职场文书
html5+实现plus.io进行拍照和图片等获取
2022/06/01 HTML / CSS