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的结果

编橙之家文章,

评论关闭