timeit takes for time 一个简单的操作

timeit takes forever to time a simple operation

不确定我做错了什么。只是想比较列表和字典的查找速度,但是 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,但结果相同。

我是不是做错了什么?

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