TP wrote: > Hi everybody, > > Several means to escape a nested loop are given here: > > http://stackoverflow.com/questions/189645/how-to-break-out-of-multiple-loops-in-python > > According to this page, the best way is to modify the loop by affecting > the variables that are tested in the loops. Otherwise, use exception: > > "If, for some reason, the terminating conditions can't be worked out, > exceptions are a fall-back plan." > > In the following example, is this possible to affect the two iterators to > escape the two loops once one "j" has been printed: > > for i in range(5): > for j in range(i): > print j > # I would type "break 2" in shell bash > # In C, I would set j=i-1 and i=4 > # In Python, is this possible to affect the two iterators? > > Or the only means is to use exception?
Here's one way to turn multiple iterators into a single one: def pairs(n): for i in range(n): for k in range(i): yield i, k for i, k in pairs(5): print i, k I've yet to see an example where a multi-level break would improve the code's readability. It is typically a speed hack. Peter PS: Have a look into the itertools if you consider that approach. -- http://mail.python.org/mailman/listinfo/python-list