Iterieren über Elementpaare in einer Liste
Beim Iterieren über eine Liste stoßen wir häufig auf Situationen, in denen wir gleichzeitig Zugriff auf zwei Elemente benötigen eine Zeit. Um dieses Problem anzugehen, können wir das Konzept der paarweisen Iteration nutzen.
Pythons integrierte zip()-Funktion kann uns in dieser Hinsicht helfen. Die Methode „pairwise()“ oder „grouped()“ verbraucht eine Iterable und liefert aufeinanderfolgende Teilsequenzen mit zwei Elementen. So können wir es implementieren:
def pairwise(iterable): "s -> (s0, s1), (s2, s3), (s4, s5), ..." a = iter(iterable) return zip(a, a)
Mit dieser Funktion betrachten wir die Liste [1, 2, 3, 4, 5, 6]. So demonstrieren Sie die paarweise Iteration:
for x, y in pairwise(l): print("%d + %d = %d" % (x, y, x + y))
Dies erzeugt die folgende Ausgabe:
1 + 2 = 3 3 + 4 = 7 5 + 6 = 11
Alternativ können wir mit der Funktion „grouped()“ über n Elemente gleichzeitig iterieren. Hier ist eine Implementierung:
def grouped(iterable, n=2): "s -> (s0,s1,s2,...sn-1), (sn,sn+1,sn+2,...s2n-1), (s2n,s2n+1,s2n+2,...s3n-1), ..." return zip(*[iter(iterable)] * n)
Wenn n beispielsweise auf 3 gesetzt ist, können wir über drei Elemente gleichzeitig iterieren:
for x, y, z in grouped(l, 3): print("%d + %d + %d = %d" % (x, y, z, x + y + z))
Dieser Ansatz ist effizient, da er über iteriert Liste nur einmal auf und macht Zwischenlisten überflüssig.
Das obige ist der detaillierte Inhalt vonWie kann ich Paare (oder Gruppen) von Elementen in einer Python-Liste durchlaufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!