Zip to Pad auf maximale Länge erweitern
Zip ist eine integrierte Funktion in Python, die mehrere Iterables kombiniert. Es stoppt jedoch bei der Länge des kürzesten Itables. Was ist, wenn wir die Ergebnisse auffüllen möchten, um sie an die Länge der längsten Iteration anzupassen?
Lösung
In Python 3 stellt itertools.zip_longest diese Funktionalität bereit. Es wertet alle Iterables aus und füllt standardmäßig mit None auf, wobei die Ausrichtung beibehalten wird.
a = ['a1'] b = ['b1', 'b2', 'b3'] c = ['c1', 'c2'] list(itertools.zip_longest(a, b, c)) # [('a1', 'b1', 'c1'), (None, 'b2', 'c2'), (None, 'b3', None)]
Sie können den Füllwert mithilfe des Fillvalue-Parameters anpassen:
list(itertools.zip_longest(a, b, c, fillvalue='foo')) # [('a1', 'b1', 'c1'), ('foo', 'b2', 'c2'), ('foo', 'b3', 'foo')]
Für Python 2 ist dies möglich Verwenden Sie itertools.izip_longest (Python 2.6) oder ordnen Sie mit None:
a = ['a1'] b = ['b1', 'b2', 'b3'] c = ['c1', 'c2'] map(None, a, b, c) # [('a1', 'b1', 'c1'), (None, 'b2', 'c2'), (None, 'b3', None)]
Das obige ist der detaillierte Inhalt vonWie kann ich die Zip-Funktion von Python auf die Länge des längsten Iterables auffüllen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!