Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich komprimierte Listen in Python auffüllen, damit sie der längsten Länge entsprechen?

Wie kann ich komprimierte Listen in Python auffüllen, damit sie der längsten Länge entsprechen?

Barbara Streisand
Freigeben: 2024-11-28 07:30:13
Original
630 Leute haben es durchsucht

How Can I Pad Zipped Lists in Python to Match the Longest Length?

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)
Nach dem Login kopieren

Ausgabe:

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

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)
Nach dem Login kopieren

Ausgabe:

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

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)
Nach dem Login kopieren

Ausgabe:

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

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!

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