好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

list.pop()函数操作头部与尾部的计时试验

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()是平坦的常数

查看更多关于list.pop()函数操作头部与尾部的计时试验的详细内容...

  阅读:41次