iterator question

Rob Williscroft rtw at freenet.co.uk
Tue Sep 26 15:18:22 EDT 2006


Rob Williscroft wrote in news:Xns984ACDA635C9rtwfreenetREMOVEcouk@
216.196.109.145 in comp.lang.python:

>>>> seq = range(11)
>>>> zip(seq[::2], seq[1::2] + [None])
> [(0, 1), (2, 3), (4, 5), (6, 7), (8, 9), (10, None)]
> 
>>>> seq = range(10)
>>>> zip(seq[::2], seq[1::2] + [None])
> [(0, 1), (2, 3), (4, 5), (6, 7), (8, 9)]

For bigger sequences:

>>> import itertools as it
>>> seq = range(11)
>>> even = it.islice( seq, 0, None, 2 )
>>> odd = it.islice( seq, 1, None, 2 )
>>> zipped = it.izip( even, it.chain( odd, [None] ) )
>>> list( zipped )
[(0, 1), (2, 3), (4, 5), (6, 7), (8, 9), (10, None)]


Rob.
-- 
http://www.victim-prime.dsl.pipex.com/



More information about the Python-list mailing list