Powiel możliwe:
How to break out of multiple loops in Python?wyrwanie się z zagnieżdżonych pętli
Czy istnieje prostszy sposób, aby wyrwać się z pętli zagnieżdżonych niż rzuca wyjątek? (W Perl, można dać etykiet do każdej pętli i co najmniej kontynuować zewnętrzną pętlę.)
for x in range(10):
for y in range(10):
print x*y
if x*y > 50:
"break both loops"
Ie, czy jest ładniejszy sposób niż:
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
Po drugie używam instrukcji 'return'. Zmusiło mnie to do napisania wewnętrznej pętli w drugiej funkcji, ale znacznie ułatwiło zrozumienie kodu. – vdboor
To ogólne rozwiązanie, które działa również, gdy po zagnieżdżonej pętli for następują inne instrukcje. Na przykład. podczas pętli nad listą zdań i użycia kilku pętli do odfiltrowania określonych zdań w oparciu o istnienie określonych słów lub liczb, przed wykonaniem rzeczywistej pracy na końcu zewnętrznej pętli for. – Anthon
Rozwiązanie pana van Rossuma nie działa, gdy znajdujemy się w generatorze, co jest dość dużą dziurą IMHO –