无法理解timeit输出

时间:2015-03-10 09:23:30

标签: python timeit

我的问题是:

>>> 999 in list(xrange(1000))
True # this takes a glimpse

相反:

>>> import timeit
>>> timeit.timeit('999 in list(xrange(1000))')
26.88947892189026

为什么timeit会提供如此高的输出?

谢谢

2 个答案:

答案 0 :(得分:4)

因为这样做 100万次https://docs.python.org/3.4/library/timeit.html#timeit.timeit


timeit.timeit采用位置参数number,默认为1.000.000,因此与只有一个相比,确实需要更长时间才能完成100万次语句。

如果你这样做一次,那就更快了:

In [2]: timeit.timeit('999 in list(xrange(1000))')
Out[2]: 31.733104944229126

In [3]: timeit.timeit('999 in list(xrange(1000))', number=1)
Out[3]: 4.5061111450195312e-05

答案 1 :(得分:0)

timeit.timeit(stmt='pass', setup='pass', timer=<default timer>, number=1000000)

愚蠢的问题,执行该语句的默认次数是一百万......我应该先阅读timeit doc ...

>>> timeit.timeit('999 in list(xrange(1000))', number=1)
9.083747863769531e-05