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实现apahce网站日志分析示例
Apr 02 Python
python同时给两个收件人发送邮件的方法
Apr 30 Python
python中的代码编码格式转换问题
Jun 10 Python
Python实现字典依据value排序
Feb 24 Python
python实现AES和RSA加解密的方法
Mar 28 Python
使用Flask-Cache缓存实现给Flask提速的方法详解
Jun 11 Python
python IDLE 背景以及字体大小的修改方法
Jul 12 Python
Python3.6+selenium2.53.6自动化测试_读取excel文件的方法
Sep 06 Python
python+Django+pycharm+mysql 搭建首个web项目详解
Nov 29 Python
python 通过手机号识别出对应的微信性别(实例代码)
Dec 22 Python
终于搞懂了Keras中multiloss的对应关系介绍
Jun 22 Python
python lambda 表达式形式分析
Apr 03 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
使用 PHPMAILER 发送邮件实例应用
2012/11/07 PHP
PHP系统命令函数使用分析
2013/07/05 PHP
java解析json方法总结
2019/05/16 PHP
php 自定义函数实现将数据 以excel 表格形式导出示例
2019/11/13 PHP
Laravel如何实现适合Api的异常处理响应格式
2020/06/14 PHP
初学prototype,发个JS接受URL参数的代码
2006/09/25 Javascript
在chrome浏览器中,防止input[text]和textarea在聚焦时出现黄色边框的解决方法
2011/05/24 Javascript
jquery数据验证插件(自制,简单,练手)实例代码
2013/10/24 Javascript
node.js中的fs.open方法使用说明
2014/12/17 Javascript
jQuery学习笔记之Ajax用法实例详解
2015/12/01 Javascript
require、backbone等重构手机图片查看器
2016/11/17 Javascript
JAVA中截取字符串substring用法详解
2017/04/14 Javascript
深入解析nodejs HTTP服务
2017/07/25 NodeJs
vue改变对象或数组时的刷新机制的方法总结
2019/04/24 Javascript
通过js实现压缩图片上传功能
2020/02/25 Javascript
Ant design vue table 单击行选中 勾选checkbox教程
2020/10/24 Javascript
python字典基本操作实例分析
2015/07/11 Python
Python 40行代码实现人脸识别功能
2017/04/02 Python
python线程池threadpool使用篇
2018/04/27 Python
PyQt5 多窗口连接实例
2019/06/19 Python
python安装requests库的实例代码
2019/06/25 Python
TensorFLow 变量命名空间实例
2020/02/11 Python
Python Dataframe常见索引方式详解
2020/05/27 Python
HTML5中如何显示视频呢 HTML5视频播放demo
2013/06/08 HTML / CSS
MYSQL支持事务吗
2013/08/09 面试题
总经理助理岗位职责
2013/11/08 职场文书
卫校护理专业毕业生求职信
2013/11/26 职场文书
夏季奶茶店创业计划书
2014/01/16 职场文书
公司门卫的岗位职责
2014/02/19 职场文书
2014年劳动部工作总结
2014/12/11 职场文书
给女朋友道歉的话大全
2015/01/20 职场文书
总经理司机岗位职责
2015/04/10 职场文书
办公用品质量保证书
2015/05/11 职场文书
感恩的心主题班会
2015/08/12 职场文书
教你用python控制安卓手机
2021/05/13 Python
Mongodb 迁移数据块的流程介绍分析
2022/04/18 MongoDB