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)

创建时间:2021-12-22 16:27
浏览量:0