Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich eine Liste in Python mithilfe der paarweisen oder N-Tupel-Gruppierung durchlaufen?

Wie kann ich eine Liste in Python mithilfe der paarweisen oder N-Tupel-Gruppierung durchlaufen?

Barbara Streisand
Freigeben: 2024-12-09 10:58:12
Original
731 Leute haben es durchsucht

How Can I Iterate Through a List in Python Using Pairwise or N-Tuple Grouping?

Paarweise Iteration in Listen durchführen

Problem:

In einer bestimmten Liste iterieren die Elemente paarweise, um eine bestimmte Aufgabe auszuführen Operation.

Implementierung:

Ein pythonischer Ansatz für die paarweise Iteration besteht darin, die Funktionen „pairwise()“ oder „grouped()“ zu verwenden:

def pairwise(iterable):
    "s -> (s0, s1), (s2, s3), (s4, s5), ..."
    a = iter(iterable)
    return zip(a, a)

l = [1,2,3,4,5,6]
for x, y in pairwise(l):
    print("{} + {} = {}".format(x, y, x + y))
Nach dem Login kopieren

Diese Funktion komprimiert das Iterable mit sich selbst, was zu Elementpaaren führt.

Verallgemeinert Gruppierung:

Um Elemente in n-Tupeln zu gruppieren, verwenden Sie die Funktion „grouped()“:

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

Zum Beispiel, um über Tripel aus der Liste l oben zu iterieren:

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

Typprüfung mit Mypy:

Für die Typprüfung in Python 3 mit Mypy:

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 eine Liste in Python mithilfe der paarweisen oder N-Tupel-Gruppierung 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