为什么 all() 比许多 "and" 命令慢?蟒



谁能解释一下为什么第一个代码比第二个代码运行得快?

# First example
if a%1 == 0 and a%2 == 0 and a%3 == 0 and a%4 == 0 and a%5 == 0:
    # do something if True
# Second example
list1 = list(range(1,6,1))
if all(a%i == 0 for i in list1)
    # do something if True

*如果a变量为false

我知道1和4可以被排除,但这是在一篇学校论文中,我要用它来展示一个不好的例子。不过,我还是想知道原因。由于

在第二个示例中,您动态创建一个列表,因此它将花费额外的时间,因为无论如何您都将执行所有比较,但会增加内存保留开销(您正在处理内存,这比处理处理器寄存器要慢一些数量级)。

相关内容

最新更新