Ant wrote: > On Sep 29, 11:04 am, "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> > wrote: > ... >> What should I do if I want the outer "for" cycle to continue or break ? If I >> put a "continue" or "break" in the inner cycle, it has no effect on the outer >> cycle. > > I'd also be interested in the idiomatic solution to this one. I can > see a number of solutions, from the ugly: > > for i in range(10): > do_break = True > for j in range(10): > if j == 6: > break > else: > do_break = False > > if do_break: > break
Here's a variant that doesn't need the flag >>> inner = "abc" >>> outer = "xbz" >>> for i in outer: ... for k in inner: ... if i == k: ... print "found", i ... break ... else: ... print i, "not found" ... continue ... break ... x not found found b but I usually prefer a helper function like this > def get_value(): > for i in range(10): > for j in range(10): > print i, j > if j == 6: > return fn(i, j) or this: >>> def f(i, inner): ... for k in inner: ... if i == k: ... print "found", i ... return True ... >>> for i in outer: ... if f(i, inner): ... break ... print i, "not found" ... x not found found b Peter -- http://mail.python.org/mailman/listinfo/python-list