Python的dict类型迭代性能的优化(items()与iteritems()、keys()与iterkeys()、values()与itervalues()的区别)

来源:互联网 发布:淘宝助理怎样删除宝贝 编辑:程序博客网 时间:2024/06/06 02:15
#coding=utf-8'''演示dict的items()与iteritems()的区别从演示结果可以看出iteritems()对于大的dict性能方面是有很大的提升的拥有10**4个item的dict就应该使用iteritems(),而不是items()。同理对keys()、iterkeys()、values()、itervalues()也是适用的'''import timeif __name__=='__main__':# n个数量级,如果你电脑性能足够好,完全可以把n值设置得更大些n = 8width = 16align = '<'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,使用itemsnStart = time.time()for j in tDict.items():passnEnd = time.time()# iter,使用iteritemsiStart = time.time()for j in tDict.iteritems():passiEnd = time.time()print "{0:{align}{width}}{1:{align}{width}.4f}{2:{align}{width}.4f}".format(i, nEnd-nStart, iEnd-iStart, width=width, align=align)

原创粉丝点击