84669 orang belajar
152542 orang belajar
20005 orang belajar
5487 orang belajar
7821 orang belajar
359900 orang belajar
3350 orang belajar
180660 orang belajar
48569 orang belajar
18603 orang belajar
40936 orang belajar
1549 orang belajar
1183 orang belajar
32909 orang belajar
昨天被人问起的,非常惭愧,写了两年Python还以为keys()就是最高效的遍历方法。
keys()
闭关修行中......
因为keys()须要形成一个列表,构建一个列表对于一个大的dict开销是很大的。lihsing说的是对的,同时还有另外一种写法是iterkeys(),速度差别不大。 见测试代码
import timeit DICT_SIZE = 100*10000 testDict = dict() for i in range(DICT_SIZE): testDict[i] = i # 构建大小为100W的字典 assert len(testDict) == DICT_SIZE def test1(): for _ in testDict.keys(): pass def test2(): for _ in testDict: pass def 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的结果
for key in _dict: pass
因为keys()须要形成一个列表,构建一个列表对于一个大的dict开销是很大的。lihsing说的是对的,同时还有另外一种写法是iterkeys(),速度差别不大。
见测试代码
输出
54.1994677764
30.2660675759
31.3075812315
是windows + python 2.7的结果