Python 无法理解timeit输出

Python 无法理解timeit输出,python,timeit,Python,Timeit,我的问题是: >>> 999 in list(xrange(1000)) True # this takes a glimpse 相反: >>> import timeit >>> timeit.timeit('999 in list(xrange(1000))') 26.88947892189026 为什么timeit的输出如此之高 谢谢因为它做了一百万次 timeit.timeit接受一个位置参数number,该参数默认为1.00

我的问题是:

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

>>> import timeit
>>> timeit.timeit('999 in list(xrange(1000))')
26.88947892189026
为什么
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
因为它做了一百万次


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

查看
timeit
调用签名:
timeit.timeit(stmt='pass',setup='pass',timer=,number=1000000)
。默认情况下,它运行1000000次。查看调用签名:
timeit.timeit(stmt='pass',setup='pass',timer=,number=1000000)
。默认情况下,它运行1000000次。无论如何,我觉得给出这样一个默认选项而不返回平均运行时间是很奇怪的。当有人执行
timeit.timeit('foo()')
时,他感兴趣的是知道执行
foo
需要多长时间,而不是我认为执行
foo
一百万次需要多长时间。不过,这是一种观点。是的,这是一种观点。不过我还是分享了它,而且在我第一次使用它时没有阅读文档,我也去了wtf。但这就是它的工作原理!如果您的问题已解决,请勾选一个答案;-)无论如何,我觉得给出这样一个默认选项而不返回平均运行时间是很奇怪的。当有人执行
timeit.timeit('foo()')
时,他感兴趣的是知道执行
foo
需要多长时间,而不是我认为执行
foo
一百万次需要多长时间。不过,这是一种观点。是的,这是一种观点。不过我还是分享了它,而且在我第一次使用它时没有阅读文档,我也去了wtf。但这就是它的工作原理!如果您的问题已解决,请勾选一个答案;-)<代码>编号=1产生不可靠的计时。您可以使用命令行界面:
python-mtimeit'999 in xrange(1000)
或将结果除以重复次数,并从多个测量值中取最小值(
repeat()
函数)。
number=1
产生不可靠的计时。您可以使用命令行界面:
python-mtimeit'999 in xrange(1000)
或将结果除以重复次数,并从几个测量值中取最小值(
repeat()
函数)。
>>> timeit.timeit('999 in list(xrange(1000))', number=1)
9.083747863769531e-05