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

Reply via email to