因此,我试图决定哪些更有效,或者它们之间是否存在差异。我编写的程序遍历for循环(python)并执行一些操作,然后根据标志写入文件。
示例A:
for element in list:
Do stuff
if(write_to_file):
write to file
例子B:
for element in list:
Do stuff
if(write_to_file):
for element in list:
write to file
在A的情况下,它必须每次检查它是否为真,但在B的情况下如果为真,则必须重新进行for循环。我的想法是他们是平等的,但我喜欢更有经验的程序员的意见
答案 0 :(得分:2)
基于您的示例的Big O复杂性分析:
for element in list:
Do stuff
if(write_to_file):
for element in list:
write to file
上述效率较低,因为您正在迭代list
两次。
即:O(n) x 2
但是请自己测试一下,使用timeit
模块,最重要的是你过早担心优化问题。 让它先工作!
另请阅读:When to optimize
答案 1 :(得分:1)
示例C:
if(write_to_file):
for element in list:
Do stuff
write to file
else:
for element in list:
Do stuff
正如其他人所说,你可能无法注意到这些方法之间的区别。