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