zoukankan      html  css  js  c++  java
  • python 中 五种字典(dict)的遍历方法,实验法比较性能。

    1 、背景:

          想知道5种遍历方法,并且知道从性能角度考虑,使用哪种。

    2、结论:

        使用这种方式:

        for key,val in AutoDict.iteritems():
            temp = "%s:%s" % (key,val)
    

      不用这种方式:

        for (key,val) in AutoDict.items():
            temp = "%s:%s" % (key,val)

     实验:

    import time
    def testDict():
        count = 1000000
        AutoDict = {}
        for i in xrange(count):
            AutoDict[i] = i    
        startTime = time.time()
        for d in AutoDict:
            temp = "%s:%s" % (d,AutoDict[d])
        #method 1  
        print 'span time 1 :%s' % str(time.time()-startTime)
        startTime = time.time()
        for (key,val) in AutoDict.items():
            temp = "%s:%s" % (key,val)
        #method 2
        print 'span time 2 :%s' % str(time.time()-startTime)
        startTime = time.time()
        for key,val in AutoDict.iteritems():
            temp = "%s:%s" % (key,val)
        #method 3
        print 'span time 3 :%s' %str(time.time()-startTime)
        startTime = time.time()
        for key in AutoDict.iterkeys():
            temp = "%s:%s" %(key,AutoDict[key])
        #method 4
        print 'span time 4 :%s' %str(time.time()-startTime)
        startTime = time.time()
        for key,val in zip(AutoDict.iterkeys(),AutoDict.itervalues()):
            temp = "%s:%s" %(key,val)
        #method 5
        print 'span time 5 :%s' %str(time.time()-startTime)
    
    testDict()

    多次实验的平均值:

    span time 1 :0.206
    span time 2 :0.508
    span time 3 :0.195
    span time 4 :0.205
    span time 5 :0.307
  • 相关阅读:
    hadoop
    常用安装
    rdd相关
    spark安装
    psutil
    scala linux终端高亮显示
    【原创】正则表达式(知识点总结)
    检测对象是否有某个属性(原型链检测和对象自身检测)
    JavaScript核心(对象+原型+函数+闭包+this+上下文堆栈+作用域链)
    JavaScript ES6迭代器指南
  • 原文地址:https://www.cnblogs.com/hans-201506/p/5143351.html
Copyright © 2011-2022 走看看