我一直想知道,像专业人员一样编写代码的最佳实践是什么。
for i in a[:]:
print("i in for loop = %s" %i)
print("\n")
for x in range(2):
for y in range(2):
print(y)
print("A mask for this image can be of row * column config. 1x1, 1x2, 1x3, 2x1,...,3x3:")
某事告诉我,我的方法从来都不是首选。
答案 0 :(得分:0)
这是一种避免尽可能多的做法,因为嵌套循环的数量和效率是直接关联的。
如果您有1个嵌套循环算法的复杂度平均为O(n)2,而2个嵌套循环的复杂度则增加到O(n)3。 如果数据结构中有n个元素,则说n = 1000 O(n)2等于1000 * 1000越过数据结构中的元素和O(n)3 1000 * 1000 * 1000。算法的全局复杂度取决于还涉及嵌套循环中的最终函数,并且会增加最终的复杂性。
答案 1 :(得分:0)
通常,嵌套越多,读取代码就越困难。如果您只想为某个范围内的每个x
和y
做某事,可以使用itertools.product
:
import itertools
for x, y in itertools.product(range(2), range(2)):
# Do something for every x, y
print(x, y)
这样,您可以保存一个嵌套,并且仍然可读。甚至可以扩展为其他变量,例如z
。