Paarweise Iteration über Listen
Das paarweise Iterieren über Elemente ist eine häufige Anforderung bei der Bearbeitung von Listen. Der Standard für Schleifen und Listenverständnisse in Python bietet jedoch keine integrierte Lösung für die paarweise Durchquerung.
Pairwise Implementation
Um diese Einschränkung zu überwinden, a Eine benutzerdefinierte Funktion namens „pairwise()“ kann implementiert werden. Diese Funktion verwendet ein Iterable als Eingabe und gibt Elementpaare zurück.
def pairwise(iterable): "s -> (s0, s1), (s2, s3), (s4, s5), ..." a = iter(iterable) return zip(a, a)
Verwendung
Mit dieser Funktion „pairwise()“ können Sie über Elemente paarweise iterieren folgt:
l = [1, 2, 3, 4, 5, 6] for x, y in pairwise(l): print("{} + {} = {}".format(x, y, x + y))
Ausgabe:
1 + 2 = 3 3 + 4 = 7 5 + 6 = 11
Generalisierte Gruppierung
Für Fälle, in denen Sie iterieren müssen Elemente in Gruppen beliebiger Größe kann eine allgemeinere Funktion namens grouped() sein verwendet.
def grouped(iterable, n): "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)
Verwendung
for x, y in grouped(l, 2): print("{} + {} = {}".format(x, y, x + y))
Typprüfung mit Mypy
Für Python 3-Benutzer, die eine Leistung erbringen möchten Bei der Typprüfung mit Mypy kann die Funktion grouped() wie folgt mit Anmerkungen versehen werden:
from typing import Iterable, Tuple, TypeVar T = TypeVar("T") def grouped(iterable: Iterable[T], n=2) -> Iterable[Tuple[T, ...]]: """s -> (s0,s1,s2,...sn-1), (sn,sn+1,sn+2,...s2n-1), ...""" return zip(*[iter(iterable)] * n)
Das obige ist der detaillierte Inhalt vonWie kann ich in Python über Listen in Paaren oder Gruppen iterieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!