Auffüllen komprimierter Listen auf die längste Länge
Im Bereich der Python-Programmierung führt die Funktion zip() mehrere Iterables nahtlos zu einer Liste zusammen Tupel. Die Länge der resultierenden Liste wird jedoch häufig durch die kürzeste Eingabe eingeschränkt. Um diese Einschränkung zu überwinden und die Liste auf die Länge der längsten Eingabe aufzufüllen, könnte man nach alternativen Lösungen suchen.
itertools.zip_longest: The Perfect Fit
Python 3 enthüllt die Leistungsfähigkeit von itertools.zip_longest, einer Funktion, die speziell für diesen Zweck entwickelt wurde. Es füllt die kürzeren Eingaben nahtlos mit None-Werten auf und erweitert die Liste effektiv auf die Länge des längsten iterierbaren Elements.
Hier ist ein anschauliches Beispiel:
a = ['a1'] b = ['b1', 'b2', 'b3'] c = ['c1', 'c2'] result = list(itertools.zip_longest(a, b, c)) print(result)
Ausgabe:
[('a1', 'b1', 'c1'), (None, 'b2', 'c2'), (None, 'b3', None)]
Anpassen des Füllwerts
Die zip_longest-Funktion bietet die Flexibilität, mithilfe des Parameters fillvalue einen benutzerdefinierten Füllwert anzugeben. Dies ermöglicht eine bessere Kontrolle über den Füllmechanismus.
result = list(itertools.zip_longest(a, b, c, fillvalue='foo')) print(result)
Ausgabe:
[('a1', 'b1', 'c1'), ('foo', 'b2', 'c2'), ('foo', 'b3', 'foo')]
Python 2.x: Alternative Ansätze
Für Benutzer von Python 2.x, die eine gleichwertige Lösung suchen, können itertools.izip_longest (verfügbar in Python 2.6) verwenden oder verwenden Karte mit None als Alternative.
result = list(map(None, a, b, c)) print(result)
Ausgabe:
[('a1', 'b1', 'c1'), (None, 'b2', 'c2'), (None, 'b3', None)]
Das obige ist der detaillierte Inhalt vonWie kann ich komprimierte Listen in Python auffüllen, damit sie der längsten Länge entsprechen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!