Python Leave Loop Рано - PullRequest
       4

Python Leave Loop Рано

29 голосов
/ 02 февраля 2010

Как мне выйти из цикла на ранней стадии 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?

Ответы [ 4 ]

50 голосов
/ 02 февраля 2010

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

17 голосов
/ 02 февраля 2010

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

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.

5 голосов
/ 02 февраля 2010

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

2 голосов
/ 02 февраля 2010

Взгляните на break и continue.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...