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中的闭包详细介绍和实例
Nov 21 Python
Python实现截屏的函数
Jul 26 Python
讲解Python的Scrapy爬虫框架使用代理进行采集的方法
Feb 18 Python
python:pandas合并csv文件的方法(图书数据集成)
Apr 12 Python
centos6.5安装python3.7.1之后无法使用pip的解决方案
Feb 14 Python
python之PyQt按钮右键菜单功能的实现代码
Aug 17 Python
浅析Python语言自带的数据结构有哪些
Aug 27 Python
Python 文件操作之读取文件(read),文件指针与写入文件(write),文件打开方式示例
Sep 29 Python
python实现批量文件重命名
Oct 31 Python
Pytest测试框架基本使用方法详解
Nov 25 Python
Pycharm 设置默认解释器路径和编码格式的操作
Feb 05 Python
python爬取股票最新数据并用excel绘制树状图的示例
Mar 01 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实现统计目录文件大小的函数
2015/12/25 PHP
php连接oracle数据库的方法(测试成功)
2016/05/26 PHP
laravel 5.4 + vue + vux + element的环境搭配过程介绍
2018/04/26 PHP
PHP实现普通hash分布式算法简单示例
2018/08/06 PHP
jQuery开发者都需要知道的5个小技巧
2010/01/08 Javascript
JS input文本框禁用右键和复制粘贴功能的代码
2010/04/15 Javascript
九种js弹出对话框的方法总结
2013/03/12 Javascript
在JavaScript中重写jQuery对象的方法实例教程
2014/08/25 Javascript
javascript计时器编写过程与实现方法
2016/02/29 Javascript
Angularjs CURD 详解及实例代码
2016/09/14 Javascript
Javascript 判断两个IP是否在同一网段实例代码
2016/11/28 Javascript
原生JS实现自定义滚动条效果
2020/10/27 Javascript
详解基于 Nuxt 的 Vue.js 服务端渲染实践
2017/10/24 Javascript
windows系统下更新nodejs版本的方案
2017/11/24 NodeJs
浅谈vue-cli 3.0.x 初体验
2018/04/11 Javascript
Webpack的dll功能使用
2018/06/28 Javascript
JS与SQL方式随机生成高强度密码示例
2018/12/29 Javascript
Vue模板语法中数据绑定的实例代码
2019/05/17 Javascript
[00:36]我的中国心——Serenity vs Fnatic
2018/08/21 DOTA
python通过pip更新所有已安装的包实现方法
2017/05/19 Python
Python实现希尔排序算法的原理与用法实例分析
2017/11/23 Python
用python给自己做一款小说阅读器过程详解
2019/07/11 Python
flask实现验证码并验证功能
2019/12/05 Python
Python Handler处理器和自定义Opener原理详解
2020/03/05 Python
使用Python内置模块与函数进行不同进制的数的转换
2020/04/26 Python
解决pytorch 模型复制的一些问题
2021/03/03 Python
世界上最大的糖果店:Dylan’s Candy Bar
2017/11/07 全球购物
DJI大疆德国官方商城:大疆无人机
2018/09/01 全球购物
Aquatalia官网:意大利著名鞋履品牌
2019/09/26 全球购物
某科技软件测试面试题
2013/05/19 面试题
人身意外保险授权委托书
2014/10/01 职场文书
群众路线党员个人剖析材料
2014/10/08 职场文书
2014年文员工作总结
2014/11/18 职场文书
工程项目合作意向书
2015/05/08 职场文书
大学生安全教育主题班会
2015/08/12 职场文书
CSS3鼠标悬浮过渡缩放效果
2021/04/17 HTML / CSS