【问题标题】:Get time execution. Compare list.pop(0) vs list().reverse(), list().pop() [duplicate]获得时间执行。比较 list.pop(0) 与 list().reverse(), list().pop() [重复]
【发布时间】:2020-08-16 19:44:21
【问题描述】:

我有一个很长的清单。我需要获取循环中的第一个元素并将其删除。因此,我试图比较两个执行此操作的函数,但每次执行的时间都不同。

from timeit import timeit
>>> def foo(l):
    start = timeit()
    while l:
        l.pop(0)
    end = timeit()
    return end - start

>>> def bar(l):
    start = timeit()
    l.reverse()
    while l:
        l.pop()
    end = timeit()
    return end - start

l = [i for i in range(100000)]
>>> for i in range(10):
    print(bar(v.copy()) - foo(v.copy()))


0.00021689999266527593
-0.015974199995980598
-0.0048112000222317874
0.0016583999822614715
-0.03471089998492971
-0.0077514999866252765
-0.0015070999943418428
0.0010934000019915402
-0.005327999999281019
0.000683299993397668
>>> 

我做得对吗?

【问题讨论】:

  • 不,您似乎将timeit.timeittime.time 混淆了。您应该阅读两者的文档以了解它们的作用以及如何使用它们。
  • 据我所知,唯一的区别是最终“timeit”更精确

标签: python


【解决方案1】:

使用timeit 的正确方法是:

>>> import timeit
>>> timeit.timeit('import time; time.sleep(1)', number=10 )
10.008471012115479
>>> 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多