Python Leave Loop Early

Как мне оставить цикл на ранней стадии python?

for a in b:
    if criteria in list1:
        print "oh no"
        #Force loop i.e. force next iteration without going on
    someList.append(a)

Кроме того, в java вы можете break выйти из цикла, есть ли эквивалент в Python?

Ответ 1

continue и break - это то, что вы хотите. В этом отношении Python работает одинаково с Java/С++.

Ответ 2

Во-первых, имейте в виду, что возможно сделать то, что вы хотите, с пониманием списка. Таким образом, вы можете использовать что-то вроде:

somelist = [a for a in b if not a.criteria in otherlist]

Если вы хотите выйти из цикла на раннем этапе Python, вы можете использовать break, как в Java.

>>> for x in xrange(1,6):
...     print x
...     if x == 2:
...         break
...
1
2

Если вы хотите начать следующую итерацию цикла раньше, вы используете continue, снова так же, как и в Java.

>>> for x in xrange(1,6):
...     if x == 2:
...         continue
...     print x
...
1
3
4
5

Здесь документация для break и continue. Это также охватывает предложения else для циклов, которые не запускаются, когда вы break.

Ответ 3

continue и break работают точно так же, как в других языках программирования, за исключением того, что вы не можете break на метку (как, например, в Java). Это означает, что вы можете разбить только один цикл за раз.

Ответ 4

Посмотрите break и continue.