zoukankan      html  css  js  c++  java
  • list.pop()函数操作头部与尾部的计时试验

    代码呈现:

    from timeit import Timer
    l1 = list(range(2000000))
    l2 = list(range(2000000))
    popzero = Timer("l1.pop(0)", "from __main__ import l1")
    print("end:%f sec" % popzero.timeit(number=1000))
    popend = Timer("l2.pop()", "from __main__ import l2")
    print("head:%f sec" % popend.timeit(number=1000))
    
    

    结果:

    end:1.150756 sec
    head:0.000062 sec
    

    探究列表的大小对两种操作的影响:

    from timeit import Timer
    popzero = Timer("l1.pop(0)", "from __main__ import l1")
    popend = Timer("l2.pop()", "from __main__ import l2")
    print(' '*8+"pop(0)************pop()")
    for i in range(1000000, 10000001, 1000000):
        l1 = list(range(i))
        head = popzero.timeit(number=1000)
        l2 = list(range(i))
        end = popend.timeit(number=1000)
        print("%15.5f  %15.5f" % (head, end))
    

    结果:

         pop(0)************pop()
         0.44019          0.00006
         1.16504          0.00008
         1.72717          0.00007
         2.40732          0.00008
         3.08073          0.00008
         3.77108          0.00008
         4.46222          0.00007
         5.10130          0.00006
         5.79160          0.00006
         6.41642          0.00007
        #可知,pop(0)呈线性增长的趋势,pop()是平坦的常数
    
  • 相关阅读:
    hdu5002 Tree
    hdu6858(杭电多校第八场) Discovery of Cycles
    杭电多校第八场总结
    ubuntu刷新swap
    python 如何关闭warning的输出
    python 如何获取整数,浮点数的最大值
    补码
    LaTeX 公式集锦
    Codeforces 581D Three Logos
    Codeforces 582 A. GCD Table
  • 原文地址:https://www.cnblogs.com/Noturns/p/13341633.html
Copyright © 2011-2022 走看看