2010-02-02 11 views
24

¿Cómo dejo un ciclo antes en Python?Python Leave Loop Early

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

Además, en Java se puede break de un bucle, es que hay un equivalente en Python?

+5

No utilice 'list' como nombre de variable. Oculta el builtin. –

Respuesta

42

continue y break es lo que quiere. Python funciona de forma idéntica a Java/C++ en este sentido.

+2

curiosidad aleatoria; ¿Eres "Max_aka_NOBODY" de los Foros de Bethesda? Compartes el mismo avatar y por eso me preguntaba. – Yacoby

+2

De hecho, lo soy. :RE –

15

En primer lugar, tenga en cuenta que es posible hacer lo que quiera con una lista de comprensión. Por lo que podría ser capaz de usar algo como:

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

Si desea dejar un lazo anticipadamente en Python puede utilizar break, al igual que en Java.

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

Si desea iniciar la siguiente iteración del bucle temprana utiliza continue, de nuevo tal como lo haría en Java.

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

Here's the documentation for break and continue. cubre Esto también else cláusulas de bucles, que no se ejecutan al break.

4

continue y break funcionan exactamente como en otros lenguajes de programación, excepto que no se puede break en una etiqueta (como se puede en Java, por ejemplo). Eso significa que solo puede romper un bucle a la vez.