it-swarm.com.de

Durchlaufen Sie die Elementpaare in einer Python Liste

Mögliche Duplikate:
Liste in Python als Paar (aktuell, als Nächstes) durchlaufen
Durchlaufen von jeweils zwei Elementen in einer Liste

Ist es möglich, eine Liste in Python (diesen Code als Pseudocode behandeln) auf folgende Weise zu iterieren?

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

Und es sollte produzieren

[5, 7]
[7, 11]
[11, 4]
[4, 5]
79
mrvn

Von itertools Rezepten:

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):
    ...
80
Jochen Ritzel

Sie können die Funktion Zip verwenden:

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

Um das zu tun, solltest du folgendes tun:

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

Fast wörtlich von Durchlaufen von Paaren in einer Liste (zirkulär) in Python :

def pairs(seq):
    i = iter(seq)
    prev = next(i)
    for item in i:
        yield prev, item
        prev = item
12
Gabe
>>> 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
5
ghostdog74