Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich Paare (oder Gruppen) von Elementen in einer Python-Liste durchlaufen?

Wie kann ich Paare (oder Gruppen) von Elementen in einer Python-Liste durchlaufen?

Susan Sarandon
Freigeben: 2024-12-10 15:55:13
Original
666 Leute haben es durchsucht

How Can I Iterate Over Pairs (or Groups) of Elements in a Python List?

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)
Nach dem Login kopieren

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))
Nach dem Login kopieren

Dies erzeugt die folgende Ausgabe:

1 + 2 = 3
3 + 4 = 7
5 + 6 = 11
Nach dem Login kopieren

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)
Nach dem Login kopieren

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))
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage