【问题标题】:timeit takes forever to time a simple operation一个简单的操作需要永远的时间
【发布时间】:2023-04-11 11:58:01
【问题描述】:

不知道我在这里做错了什么。只是想比较 list 和 dict 的查找速度,但 timeit 只需要很长时间才能得到结果。

from timeit import timeit

foo = list(range(10000000))
bar = {x:0 for x in range(10000000)}

timeit('5000000 in foo', globals=globals())

我也尝试不使用globals,而是在timeit 中将初始化语句传递给setup,但结果相同。

我在这里做错了吗?

【问题讨论】:

    标签: python list timeit


    【解决方案1】:

    number= 参数放入timeit() 函数以限制次数 的执行:

    from timeit import timeit
    
    foo = list(range(10_000_000))
    bar = {x:0 for x in range(10_000_000)}
    
    print( timeit('5000000 in foo', globals=globals(), number=1) )
    

    打印:

    0.0755848770004377
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-16
      • 1970-01-01
      • 1970-01-01
      • 2013-12-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多