如题
#!/usr/bin/env python
# encoding: utf-8
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)
output-------------->
41.5701109692
33.3313205874
33.1459584286
之前一直以为keys是最快的,后来发现查找一个key的时候居然还没有has_key()快,后来在网上查看发现了这个,感觉有点收获了。python3取消了has_key以后就可以用for _ in testDict:这个方式来进行索引了。