question about for cycle
Zentrader
zentraders at gmail.com
Sat Sep 29 15:38:09 EDT 2007
On Sep 29, 8:19 am, George Sakkis <george.sak... at gmail.com> wrote:
> On Sep 29, 10:34 am, "fdu.xia... at gmail.com" <fdu.xia... at gmail.com>
> wrote:
>
>
>
> > tokl... at gmail.com wrote:
>
> > > On 29 sep, 12:04, "fdu.xia... at gmail.com" <fdu.xia... at gmail.com> wrote:
>
> > >> for i in generator_a: # the first "for" cycle
> > >> for j in generator_b:
> > >> if something_happen:
> > >> # do something here ..., I want the outer cycle to break
> > >> break
>
> > > Do you like this?
>
> > > generator_ab = ((x, y) for x in generator_a for y in generator_b)
> > > for i, j in generator_ab:
> > > if condition:
> > > # do something
> > > break
>
> > In this case, the tuple generator_ab must be generated first.
> George
You can get specific break points by expanding the for loop into a
while loop, and this is perhaps why it has never been implemented with
for loops.
ctr_a=0
ctr_b=0
while ctr_a < len(generator_a):
this_el_a = generator_a[ctr_a]
while ctr_b < len(generator_b):
this_el_b = generator_b[ctr_ b]
if something_happen:
ctr_b = len(generator_b) ## break this loop
if something_else:
ctr_a = len(generator_a) ## break outer while loop
ctr_b += 1
ctr_a += 1
More information about the Python-list
mailing list