Python遍历字典中key最高效操作方法是什么,python操作方法,昨天被人问起的,非常惭愧
Python遍历字典中key最高效操作方法是什么,python操作方法,昨天被人问起的,非常惭愧
昨天被人问起的,非常惭愧,写了两年Python还以为keys()就是最高效的遍历方法。
for key in _dict: pass
因为keys()须要形成一个列表,构建一个列表对于一个大的dict开销是很大的。lihsing说的是对的,同时还有另外一种写法是iterkeys(),速度差别不大。
见测试代码
import timeitDICT_SIZE = 100*10000testDict = dict()for i in range(DICT_SIZE): testDict[i] = i # 构建大小为100W的字典assert len(testDict) == DICT_SIZEdef test1(): for _ in testDict.keys(): passdef test2(): for _ in testDict: passdef test3(): for _ in testDict.iterkeys(): pass# 分别测试2K次print timeit.timeit("test1()", setup="from __main__ import test1", number=2000) print timeit.timeit("test2()", setup="from __main__ import test2", number=2000)print timeit.timeit("test3()", setup="from __main__ import test3", number=2000)
输出
54.1994677764
30.2660675759
31.3075812315
是windows + python 2.7的结果
编橙之家文章,
相关内容
- python捉虫下载图片报invalid mode ('ab') or filename错误,是什
- python空值在排序时是如何处理的,python排序处理,我对数
- Python pytesser验证码识别成功后,服务器显示验证码过期,
- mongoDB启动发生系统错误 1067怎么破?,mongodb1067,问题1:
- python内部函数能修改外部函数的值吗?怎么写?,python值
- Django request.POST获取中文参数显示不正常,djangorequest.
- 请问python方法如何抓取11平台积分,python抓取11平台,很
- Python html标签剔除功能,pythonhtml标签剔除,例如【11月
- 求Python搭建局域网报表系统思路,python搭建,现在在做报
- 在Python循环中随机产生变量名操作怎么实现,python变量
评论关闭