我经常需要提前结束循环一次迭代,我该如何优雅地完成它? Breaking out of nested loops看起来很混乱。 现在我用return来解决它,但是后来我想创建一个类,在构造函数中间返回会失去感觉。
update()
答案 0 :(得分:0)
您也可以使用break
:
for i in range(1,100):
if i==10:
break
只要条件匹配,就会终止循环。
答案 1 :(得分:0)
一个通用的解决方案是从迭代器创建一个生成器(它将产生除迭代器产生的最后一个元素之外的所有元素):
def but_last(p):
first = True
for x in p:
if not first:
yield last
first = False
last = x
for layerId, layer in but_last(enumerate(neurons)):
do_your_stuff(layerId, layer)
答案 2 :(得分:0)
我建议你将神经元对象实现为一个方法__iter__
的类,以根据你喜欢的行为使对象可迭代:
class MyClass(object):
def __iter__(self):
yield 2
yield 5
yield 10
obj = MyClass()
for i in obj:
print i