Eventuali duplicati:
How to break out of multiple loops in Python?Scoppio di cicli nidificati
C'è un modo più semplice per uscire da cicli annidati di un'eccezione? (In Perl, si può dare etichette per ogni ciclo e almeno continuare un ciclo esterno.)
for x in range(10):
for y in range(10):
print x*y
if x*y > 50:
"break both loops"
Vale a dire, c'è un modo più bello di:
class BreakIt(Exception): pass
try:
for x in range(10):
for y in range(10):
print x*y
if x*y > 50:
raise BreakIt
except BreakIt:
pass
I secondo utilizzando l'istruzione 'return'. Mi ha costretto a scrivere il ciclo interno in una seconda funzione, ma ho reso il codice molto più facile da capire. – vdboor
Questa soluzione generica funziona anche quando il ciclo nested for è seguito da altre istruzioni. Per esempio. quando si esegue il ciclo su un elenco di frasi e si utilizzano diversi cicli per filtrare frasi specifiche in base all'esistenza di parole o numeri specifici, prima di eseguire il lavoro effettivo alla fine del ciclo esterno. – Anthon
La soluzione di Mr van Rossum non funziona quando si è in un generatore, che è un buco abbastanza grande IMHO –