Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich in Python über Listen in Paaren oder Gruppen iterieren?

Wie kann ich in Python über Listen in Paaren oder Gruppen iterieren?

Susan Sarandon
Freigeben: 2024-12-25 10:53:50
Original
182 Leute haben es durchsucht

How Can I Iterate Over Lists in Pairs or Groups in Python?

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

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

Ausgabe:

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

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

Verwendung

for x, y in grouped(l, 2):
    print("{} + {} = {}".format(x, y, x + y))
Nach dem Login kopieren

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

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!

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