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)))
Dieser Code gibt die folgende Liste von Tupeln aus:
[('a1', 'b1', 'c1'), (None, 'b2', 'c2'), (None, 'b3', None)]
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')))
Dadurch wird die folgende Liste von Tupeln ausgegeben:
[('a1', 'b1', 'c1'), ('foo', 'b2', 'c2'), ('foo', 'b3', 'foo')]
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!