On Sun, May 12, 2019 at 12:43 PM David Mertz <me...@gnosis.cx> wrote:
>
> Terry reminds me of a common case I encounter that cannot be transformed into 
> a loop over itertools.product(). E.g.
>
> for main in stuff:
>     if thing_about(main):
>         for detail in more_stuff(stuff, main):
>             if seen_enough(detail):
>                 # break to outer somehow
>     else:
>         for detail in different_stuff():
>             if seen_enough(detail):
>                 # break to outer somehow
>

For that kind of loop, there's a different problem, which is the
duplication. So I would start by rewriting that as:

for main in stuff:
    if thing_about(main):
        details = more_stuff(stuff, main)
    else:
        details = different_stuff()
    for detail in details:
        if seen_enough(detail):
            ...

I'm not sure what you mean by "break to outer somehow", though, so I
don't know what you're actually needing here. Concrete examples would
help.

ChrisA
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to