Python的dict类型迭代性能的优化(items()与iteritems()、keys()与iterkeys()、values()与itervalues()的区别)
#coding=utf-8
'''
演示dict的items()与iteritems()的区别
从演示结果可以看出iteritems()对于大的dict性能方面是有很大的提升的
拥有10**4个item的dict就应该使用iteritems(),而不是items()。
同理对keys()、iterkeys()、values()、itervalues()也是适用的
'''
import time
if __name__=='__main__':
# n个数量级,如果你电脑性能足够好,完全可以把n值设置得更大些
n = 8
width = 16
align = '<'
print "{0:{align}{width}}{1:{align}{width}}{2:{align}{width}}".format('', 'items()', 'iteritems()', width=width, align=align)
for i in range(n):
tDict = {}.fromkeys(range(10**i))
# normal,使用items
nStart = time.time()
for j in tDict.items():
pass
nEnd = time.time()
# iter,使用iteritems
iStart = time.time()
for j in tDict.iteritems():
pass
iEnd = time.time()
print "{0:{align}{width}}{1:{align}{width}.4f}{2:{align}{width}.4f}".format(i, nEnd-nStart, iEnd-iStart, width=width, align=align)