osdir.com


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

itertools product(infinite iterator) hangs


On Sat, 14 Sep 2019 at 07:22, ast <none at gmail.com> wrote:
>
> Le 14/09/2019 ? 04:26, Oscar Benjamin a ?crit :
> >
> > What am I missing?
>
> here is a pseudo code for product:
>
> def product(*args, repeat=1):
>      # product('ABCD', 'xy') --> Ax Ay Bx By Cx Cy Dx Dy
>      # product(range(2), repeat=3) --> 000 001 010 011 100 101 110 111
>      pools = [tuple(pool) for pool in args] * repeat
>      result = [[]]
>      for pool in pools:
>          result = [x+[y] for x in result for y in pool]
>      for prod in result:
>          yield tuple(prod)
>
> clearly "tuple(pool)" hangs with an infinite iterable pool

Thanks for this response. I also realised this myself after a while.

Actually I didn't see your message until I posted my own followup
reply because gmail had moved it into spam. Apparently it doesn't like
the headers in your email for some reason: "Gmail could not verify
that it actually came from gmail.com. Avoid clicking links,
downloading attachments or replying with personal information."

Oscar