Heim > Backend-Entwicklung > Python-Tutorial > Wie geht die Funktion „zip_longest()' von Python mit Eingabesequenzen ungleicher Länge um?

Wie geht die Funktion „zip_longest()' von Python mit Eingabesequenzen ungleicher Länge um?

Barbara Streisand
Freigeben: 2024-12-05 04:14:09
Original
881 Leute haben es durchsucht

How Does Python's `zip_longest()` Function Handle Unequal-Length Input Sequences?

Erweitern der Zip-Funktionalität mit Padding

Zip() ist eine nützliche Funktion zum Kombinieren von Elementen aus mehreren Sequenzen in einer einzigen Liste von Tupeln. Die Einschränkung besteht jedoch darin, dass nur Tupel mit so vielen Elementen wie die kürzeste Eingabesequenz erstellt werden. Dies kann bei der Arbeit mit Sequenzen unterschiedlicher Länge zu unvollständigen Ergebnissen führen.

Um diese Einschränkung zu überwinden, wurde eine erweiterte Funktion namens zip_longest() eingeführt. zip_longest() ist in Python 3 verfügbar und stellt eine erweiterte Version von zip() bereit, die fehlende Werte in den Ergebnissen automatisch auffüllt, sodass die Länge der resultierenden Liste der Länge der längsten Eingabe und nicht der kürzesten entspricht.

Um zip_longest() zu verwenden, übergeben Sie ihm einfach die Sequenzen, die Sie kombinieren möchten, als Argumente. Die Funktion erstellt Tupel für jeden Satz entsprechender Elemente in den Eingabesequenzen und füllt alle fehlenden Werte mit einem Standardfüllwert (normalerweise Keine) auf.

Betrachten Sie beispielsweise den folgenden Codeausschnitt:

a = ['a1']
b = ['b1', 'b2', 'b3']
c = ['c1', 'c2']

print(list(itertools.zip_longest(a, b, c)))
Nach dem Login kopieren

Dieser Code gibt die folgende Liste von Tupeln aus:

[('a1', 'b1', 'c1'), (None, 'b2', 'c2'), (None, 'b3', None)]
Nach dem Login kopieren

Wie Sie sehen können, die resultierende Liste hat die gleiche Länge wie die längste Eingabesequenz (b). Die fehlenden Werte in a und c wurden mit None aufgefüllt.

Sie können auch einen benutzerdefinierten Füllwert mithilfe des Parameters fillvalue angeben. Beispielsweise füllt das folgende Codefragment fehlende Werte mit der Zeichenfolge „foo“ auf:

print(list(itertools.zip_longest(a, b, c, fillvalue='foo')))
Nach dem Login kopieren

Dadurch wird die folgende Liste von Tupeln ausgegeben:

[('a1', 'b1', 'c1'), ('foo', 'b2', 'c2'), ('foo', 'b3', 'foo')]
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie geht die Funktion „zip_longest()' von Python mit Eingabesequenzen ungleicher Länge um?. 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