inverse of izip
Steven Bethard
steven.bethard at gmail.com
Thu Aug 19 17:10:05 EDT 2004
Peter Otten <__peter__ <at> web.de> writes:
> You can model the nested generator expressions' behaviour with the following
> function - which I think is much clearer.
>
> def starzip(iterables):
> def inner(itr):
> for t in itr:
> yield t[i]
>
> for (i, itr) in enumerate(it.tee(iterables)):
> yield inner(itr)
>
> Note how itr is passed explicitly, i. e. it is not affected by later
> rebindings in startzip() whereas i is looked up in inner()'s surrounding
> namespace at every yield.
Thanks, that was really helpful! It also clarifies why your solution works
right; your code basically does:
def starzip(iterables):
def inner(itr, i):
for t in itr:
yield t[i]
for i, itr in enumerate(itertools.tee(iterables)):
yield inner(itr, i)
where i is now passed explicitly too.
Thanks again,
Steve
More information about the Python-list
mailing list