如何使用%timeit并通过-o参数将计时结果存入变量a?
使用%timeit的-o参数将计时结果存入变量的正确方法
不管是单行还是多行代码,核心是把变量赋值和%timeit的-o参数正确结合,以下是具体用法:
单行代码的情况
直接将整个%timeit命令作为赋值语句的右值,带上-o参数即可:
a = %timeit -o [x**2 for x in range(1000)]
执行后,变量a会保存一个TimeitResult对象,里面包含了计时的所有核心数据:
a.average:平均执行时间a.stdev:时间标准差a.timings:每一轮测试的时间列表
多行代码的情况
用%%timeit魔法命令时,把赋值和-o参数写在第一行,代码放在后续行:
a = %%timeit -o total = 0 for x in range(1000): total += x**2
同样,执行后a会拿到对应的计时结果对象。
常见错误纠正
你之前写的%%timeit [-n<N> -r<R> [-t|-c] -q -p<P> -o]是语法错误,不需要加方括号,参数直接拼接即可。比如指定循环次数-n和重复轮次-r:
# 单行示例:执行100次循环,重复5轮 a = %timeit -n100 -r5 -o [x*3 for x in range(500)]
结果查看示例
赋值完成后,可以直接访问结果对象的属性查看具体数据:
print(f"平均执行时间:{a.average:.6f}秒") print(f"时间标准差:{a.stdev:.6f}秒")
内容的提问来源于stack exchange,提问作者nastaran
相关产品推荐
相关产品推荐

