l = range(100)
%timeit [i**2 for i in l]
10000 loops, best of 3: 41.6 µs per loop
我对如何解释上述输出感到困惑。
答案 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,它为您提供最佳的三个执行时间。