如何更早地结束循环一次迭代?

时间:2015-10-19 10:19:41

标签: python iteration neural-network nested-loops

我经常需要提前结束循环一次迭代,我该如何优雅地完成它? Breaking out of nested loops看起来很混乱。 现在我用return来解决它,但是后来我想创建一个类,在构造函数中间返回会失去感觉。

update()

3 个答案:

答案 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