python中的时间与%timeit %% timeit如何保留/保留值供以后使用

时间:2018-02-13 15:00:21

标签: python ipython jupyter-notebook ipython-magic

我正在尝试测量代码不同部分的执行时间,每行几行。我使用%% timeit执行此操作,但是在执行单元格后,我发现为单元格中的变量计算的值不会保留在内存中以供下一个单元格使用,如下例所示。

为什么会这样?有没有办法保留这些值,以便我可以在程序的其余部分使用它们?

In [1]: %%timeit
...: dog='dog'
100000000 loops, best of 3: 16.2 ns per loop

In [2]: print (dog)
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-16-c61686862278> in <module>()
----> 1 print (dog)

NameError: name 'dog' is not defined

这对我来说听起来似乎是一个显而易见的微不足道的问题(或者我所期望的默认行为),但我无法在网上找到任何信息,所以我希望有人可以提供帮助。

1 个答案:

答案 0 :(得分:1)

跑了这个:

%%timeit
dog='dog'
for i in range(100000000):
   i += 1

print(i)
print(dog)

在一个jupyter笔记本在线,它给了: 亿 狗 亿 狗 亿 狗 亿 狗 亿 狗 亿 狗 亿 狗 亿 狗 每循环6.6 s±123 ms(平均值±标准偏差,7次运行,每次循环1次)

试试吧。