# inverse of izip

Satchidanand Haridas sharidas at zeomega.com
Thu Aug 19 08:37:48 CEST 2004

```Steven Bethard wrote:

>So I know that zip(*) is the inverse of zip(), e.g.:
>
>
>
>>>>zip(*zip(range(10), range(10)))
>>>>
>>>>
>[(0, 1, 2, 3, 4, 5, 6, 7, 8, 9), (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)]
>
>What's the inverse of izip?  Of course, I could use zip(*) or izip(*),
>e.g.:
>
>
>
>>>>zip(*itertools.izip(range(10), range(10)))
>>>>
>>>>
>[(0, 1, 2, 3, 4, 5, 6, 7, 8, 9), (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)]
>
>
>>>>x, y = itertools.izip(*itertools.izip(range(10), range(10)))
>>>>x, y
>>>>
>>>>
>((0, 1, 2, 3, 4, 5, 6, 7, 8, 9), (0, 1, 2, 3, 4, 5, 6, 7, 8, 9))
>
>But then I get a pair of tuples, not a pair of iterators.  Basically,
>I want to convert an iterator of tuples into a tuple of iterators.
>
>Steve
>
>
---------------------------------

>>> a = itertools.izip(*itertools.izip(range(10),range(10)))
>>> a
<itertools.izip object at 0x40164f2c>

>>>a.next()
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
>>> a.next()
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
>>> a.next()
Traceback (most recent call last):
File "<stdin>", line 1, in ?
StopIteration

-----------------------------

Regards,
Satchit

----
Satchidanand Haridas (sharidas at zeomega dot com)

ZeOmega (www.zeomega.com)
Open  Minds' Open Solutions

#20,Rajalakshmi Plaza,