【发布时间】:2015-12-05 02:55:13
【问题描述】:
我运行了代码
a = True
b = False
c = False
d = False
e = False
import time
iterations = int(1e6)
start = time.time()
for _ in range(iterations):
a or b or c or d or e
print(time.time() - start)
start = time.time()
for _ in range(iterations):
b or c or d or e or a
print(time.time() - start)
结果
0.10876178741455078
0.26296424865722656
- 为什么布尔求值的顺序会影响速度?
- 是因为某种形式的优化吗?
- 如果有,我可以阅读资源吗?
【问题讨论】:
-
or一碰到True就会短路。 -
完全不相关,但如果您想了解 stdlib 的
timeit模块... -
@ajcr 短路。我不知道那件事。谢谢。
标签: python optimization time boolean