我很快尝试在 ipython 中计时 2 个函数,m1()
并 m2()
使用 2 个不同的实现来执行相同的任务。
In [23]: %timeit for x in range(100): m1(a)
10000 loops, best of 3: 57.6 us per loop
In [24]: %timeit for x in range(100): m2(a)
10000 loops, best of 3: 108 us per loop
结果:第一个实现几乎快了 2 倍。到目前为止,一切都很好。
出于好奇,我改变了for
上面循环的范围,现在我对输出的意义感到茫然。
In [25]: %timeit for x in range(1): m2(a)
1000000 loops, best of 3: 1.29 us per loop
In [26]: %timeit for x in range(10): m2(a)
100000 loops, best of 3: 10.8 us per loop
In [27]: %timeit for x in range(1000): m2(a)
1000 loops, best of 3: 1.06 ms per loop
for 循环到底在做什么?为什么循环数的值会随着范围值的增加而减少?
PS:我用这个作为参考。另外,如果它不能准确地表达我的问题,请将标题编辑为更好的东西。