Pythonic iteration over sliding window pairs in list?

iteration, list, list-manipulation, python, python-itertools

Solution

How about:

for x, y in itertools.izip(l, l[1:]): print x, y

Problem

What's the most Pythonic efficient way to iterate over a list in sliding pairs? Here's a related example: ``` >>> l ['a', 'b', 'c', 'd', 'e', 'f', 'g'] >>> for x, y in itertools.izip(l, l[1::2]): print x, y ... a b b d c f ``` this is iteration in pairs, but how can we get iteration over a sliding pair? Meaning iteration over the pairs: ``` a b b c c d d e etc. ``` which is iteration over the pairs, except sliding the pair by 1 element each time rather than by 2 elements. thanks.

Original source

Related problems