for循环内部或外部if语句的复杂性

Complexity of if statement inside or outside for loop

让我们比较一下:

for path in filePaths :
    if(self.module!=organizer and self.module!=decoder):
        # some code with loops
    elif(self.module==decoder):
        # some code with loops

还有这个:

if(self.module!=organizer and self.module!=decoder):
    for path in filePaths :
        # some code with loops
elif(self.module==decoder):
    for path in filePaths :
        # some code with loops

哪个最有效,为什么?

它们的复杂度都是O(n),但后者效率更高。由于 self.module 在循环执行期间不会改变,因此在每次迭代中检查它没有意义。