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的Django框架中的静态资源管理器django-pipeline
Apr 25 Python
Python向Excel中插入图片的简单实现方法
Apr 24 Python
python3连接MySQL数据库实例详解
May 24 Python
django+echart绘制曲线图的方法示例
Nov 26 Python
对python中数据集划分函数StratifiedShuffleSplit的使用详解
Dec 11 Python
Python实现Event回调机制的方法
Feb 13 Python
在macOS上搭建python环境的实现方法
Aug 13 Python
详解Python list和numpy array的存储和读取方法
Nov 06 Python
python matplotlib包图像配色方案分享
Mar 14 Python
Python调用接口合并Excel表代码实例
Mar 31 Python
Python datetime模块使用方法小结
Jun 18 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 批量删除 sql语句
2009/06/05 PHP
php中使用exec,system等函数调用系统命令的方法(不建议使用,可导致安全问题)
2012/09/07 PHP
Window下PHP三种运行方式图文详解
2013/06/11 PHP
ThinkPHP3.2.2的插件控制器功能
2015/03/05 PHP
php利用递归实现删除文件目录的方法
2016/09/23 PHP
在PHP中实现使用Guzzle执行POST和GET请求
2019/10/15 PHP
js的表单操作 简单计算器
2011/12/29 Javascript
JavaScript实现自己的DOM选择器原理及代码
2013/03/04 Javascript
js菜单点击显示或隐藏效果的简单实例
2014/01/13 Javascript
JavaScript数组函数unshift、shift、pop、push使用实例
2014/08/27 Javascript
jQuery实现contains方法不区分大小写的方法
2015/02/13 Javascript
详解jQuery中的元素的属性和相关操作
2015/08/14 Javascript
浅谈JavaScript 标准对象
2016/06/02 Javascript
Spring MVC中Ajax实现二级联动的简单实例
2016/07/06 Javascript
用js实现before和after伪类的样式修改的示例代码
2017/09/07 Javascript
JS从非数组对象转数组的方法小结
2018/03/26 Javascript
jQuery实现的手动拖动控制进度条效果示例【测试可用】
2018/04/18 jQuery
js页面加载后执行的几种方式小结
2020/01/30 Javascript
记一次用ts+vuecli4重构项目的实现
2020/05/21 Javascript
[01:18]一目了然!DOTA2DotA快捷操作对比第一弹
2014/07/01 DOTA
[01:17:47]TNC vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python标准库与第三方库详解
2014/07/22 Python
在Gnumeric下使用Python脚本操作表格的教程
2015/04/14 Python
小小聊天室Python代码实现
2016/08/17 Python
Flask配置Cors跨域的实现
2019/07/12 Python
在python image 中实现安装中文字体
2020/05/16 Python
墨西哥运动服饰和鞋网上商店:Netshoes墨西哥
2016/07/28 全球购物
荷兰度假屋租赁网站:Aan Zee
2020/02/28 全球购物
党务公开方案
2014/05/06 职场文书
环保标语口号
2014/06/13 职场文书
十佳好少年事迹材料
2014/08/21 职场文书
解除施工合同协议书
2014/10/17 职场文书
python实现自定义日志的具体方法
2021/05/28 Python
关于MySQL中的 like操作符详情
2021/11/17 MySQL
详解Vue slot插槽
2021/11/20 Vue.js
使用HBuilder制作一个简单的HTML5网页
2022/07/07 HTML / CSS