首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python:%timeit操作

Python:%timeit操作
EN

Stack Overflow用户
提问于 2017-11-20 00:48:00
回答 2查看 3.3K关注 0票数 1
代码语言:javascript
复制
l = range(100)
%timeit [i**2 for i in l]

10000 loops, best of 3: 41.6 µs per loop

我对如何解释上面的输出感到困惑。

EN

回答 2

Stack Overflow用户

发布于 2017-11-20 01:13:02

[i**2 for i in l]已经被%timeit调用了10000次。

每次执行这行代码时,%timeit都会测量它所用的时间。请注意,%timeit并不总是运行一个操作10000次。它运行一次,并决定操作应该运行多少次。我们的目标是有足够的测量,同时不需要一个小时来给出估计。如果您尝试使用更大的l%timeit可能只会运行1000次。

您的计算机可能会同时执行一些其他操作(例如,浏览浏览器、播放音乐等)因此,一些执行可能非常慢,不应该被考虑在内。

%timeit从10000次中取出3次最短的执行,并显示它们的平均值。在这些执行过程中,您的计算机可能没有做太多事情,因此相应的时间可能代表了如果您的计算机只专注于此任务所需的时间。

使用%是为了告诉iPython这是一个iPython命令,而不是Python命令。如果你在普通的Python控制台中尝试,它会失败,并显示一个SyntaxError。您也可以在iPython中键入%history

票数 4
EN

Stack Overflow用户

发布于 2017-11-20 01:04:51

这是%timeit的默认行为,它执行多次运行以获得更健壮的结果。

代码语言:javascript
复制
l = range(100)
%timeit [i**2 for i in l]

10000 loops, best of 3: 41.6 µs per loop

不是的。执行循环的次数是1000,它提供了三种执行时间中最好的一种。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47379352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档