84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
昨天被人问起的,非常惭愧,写了两年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的结果
雷雷
因为keys()须要形成一个列表,构建一个列表对于一个大的dict开销是很大的。lihsing说的是对的,同时还有另外一种写法是iterkeys(),速度差别不大。
见测试代码
输出
54.1994677764
30.2660675759
31.3075812315
是windows + python 2.7的结果
雷雷