Итерация через пары элементов в списке Python

Возможные дубликаты:
Итерировать список как пару (текущий, следующий) в Python
Итерация по всем двум элементам в списке

Можно ли перебирать список следующим образом в Python (рассматривать этот код как псевдокод)?

a = [5, 7, 11, 4, 5]
for v, w in a:
    print [v, w]

И он должен произвести

[5, 7]
[7, 11]
[11, 4]
[4, 5]

Ответ 1

Из itertools получателей:

from itertools import tee, izip
def pairwise(iterable):
    "s -> (s0,s1), (s1,s2), (s2, s3), ..."
    a, b = tee(iterable)
    next(b, None)
    return izip(a, b)

for v, w in pairwise(a):
    ...

Ответ 2

Вы можете использовать функцию zip:

a = [5, 7, 11, 4, 5]
for v, w in zip(a[:-1], a[1:]):
    print [v, w]

Ответ 3

Это невозможно. Сначала вы должны были попробовать.

Для этого вы должны сделать:

a =  [5, 7, 11, 4, 5]
for i in range(len(a)-1):
    print [a[i], a[i+1]]

Ответ 5

>>> a = [5, 7, 11, 4, 5]
>>> for n,k in enumerate(a[:-1]):
...     print a[n],a[n+1]
...
5 7
7 11
11 4
4 5