Python:%timeit操作

时间:2017-11-19 16:48:00

标签: python ipython timeit

l = range(100)
%timeit [i**2 for i in l]

10000 loops, best of 3: 41.6 µs per loop

我对如何解释上述输出感到困惑。

2 个答案:

答案 0 :(得分:1)

[i**2 for i in l]已被%timeit召唤10000次。

每次执行此代码行时,%timeit都会测量所花费的时间。请注意,%timeit并不总是运行10000次操作。它运行一次并决定应该运行多少次操作。目标是获得足够的测量值,而不需要1小时来估算。如果您使用较大的l进行尝试,%timeit可能只会运行1000次。

您的计算机可能正在同时进行其他操作(例如浏览器,播放音乐......),因此某些执行可能会非常缓慢,不应该被考虑在内。

%timeit在10000次中执行3次最短的执行,并显示其平均值。在这些执行期间,您的计算机可能没有做太多工作,因此相应的时间可能代表您的计算机只专注于此任务所需的时间。

%用于告诉iPython它是一个iPython命令,而不是Python命令。如果您在普通的Python控制台中尝试它,它将失败并显示SyntaxError。您也可以在iPython中输入%history

答案 1 :(得分:0)

这是%timeit的默认行为,它会执行多次运行以获得更强大的结果。

l = range(100)
%timeit [i**2 for i in l]

10000 loops, best of 3: 41.6 µs per loop

没有。执行的循环数为1000,它为您提供最佳的三个执行时间。