为什么all()慢于许多"和"命令?蟒蛇

时间:2014-03-19 20:12:03

标签: python tags command

有人可以解释为什么第一个代码比第二个代码运行得更快的原因吗?

# 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,但是对于学校论文来说,我只是用它来展示一个坏榜样。不过,我想知道原因。 感谢

1 个答案:

答案 0 :(得分:1)

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