【发布时间】:2016-07-14 05:24:38
【问题描述】:
哪个测试更快:相等还是不等?
例如,在一个大的while 循环中,条件应该是a>0 而不是a!=0 吗?
【问题讨论】:
-
你可以试试计时。
-
这些结构之间没有明确的性能差异。因此,即使如果在实践中存在任何差异,也不能保证跨平台、解释器版本等持续存在。
-
此外,哪一个更快会因所讨论的数据类型而有很大差异;如果它是一个实现
__eq__或类似的类,那么你就在那里。如果不锁定数据类型、解释器版本、CPU 和许多其他变量,对于这个问题根本就没有规范的答案。 -
很有可能,无论您在该 while 循环中做什么,所花费的时间都比每次迭代时 while 循环所做的比较要长得多。
-
...所以,如果你想成为 Pythonic,请使用读者最容易理解的代码,不要担心速度。一般来说,
a > 0是更安全的方法,因为如果值为负数,您将无法进入无限循环。
标签: python performance python-3.x operators