On 01/04/2015 14:16, Steven D'Aprano wrote:
On Wed, Apr 01, 2015 at 12:06:33PM +0100, Mark Lawrence wrote:
In which case I'll stick with the more-itertools pairwise() function
which I pointed out on another thread just yesterday. From
http://pythonhosted.org//more-itertools/api.html
<quote>
Returns an iterator of paired items, overlapping, from the original
take(4, pairwise(count()))
[(0, 1), (1, 2), (2, 3), (3, 4)]
I betcha the implementation of pairwise is something really close to:
def pairwise(iterable):
it = iter(iterable)
return itertools.izip(it, it)
for Python 2, and for Python 3:
def pairwise(iterable):
it = iter(iterable)
return zip(it, it)
Not a bad attempt :) It's actually.
def pairwise(iterable):
"""Returns an iterator of paired items, overlapping, from the original
>>> take(4, pairwise(count()))
[(0, 1), (1, 2), (2, 3), (3, 4)]
"""
a, b = tee(iterable)
next(b, None)
return zip(a, b)
--
My fellow Pythonistas, ask not what our language can do for you, ask
what you can do for our language.
Mark Lawrence
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor