我试图通过iPython的%%timeit
机制来确定set.remove
是否比list.remove
快,这时出现了一个难题.
我可以
In [1]: %%timeit
a_list = list(range(100))
a_list.remove(50)
然后做同样的事情,但用set
.然而,这将包括list
/set
施工的间接费用.有没有办法在每次迭代中重建list
/set
,但只重建remove
方法的时间?
我试图通过iPython的%%timeit
机制来确定set.remove
是否比list.remove
快,这时出现了一个难题.
我可以
In [1]: %%timeit
a_list = list(range(100))
a_list.remove(50)
然后做同样的事情,但用set
.然而,这将包括list
/set
施工的间接费用.有没有办法在每次迭代中重建list
/set
,但只重建remove
方法的时间?
Put your setup code on the same line to create any names or precursor operations you need!
https://ipython.org/ipython-doc/dev/interactive/magics.html#magic-timeit
在单元模式下,第一行中的语句用作设置代码(已执行但未计时),单元体将计时.单元体可以访问在设置代码中创建的任何变量.
%%timeit setup_code
...
遗憾的是,由于无法重新运行安装程序代码,因此只能执行一次运行
%%timeit -n1 x = list(range(100))
x.remove(50)
令人惊讶的是,这不接受timeit
预期的字符串,因此结合单次运行的要求,我仍然会使用字符串设置转到timeit
,如果需要大量设置或统计上更高的精度,则手动重复它