Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich die zip()-Funktion von Python erweitern, um Iterables ungleicher Länge zu verarbeiten?

Wie kann ich die zip()-Funktion von Python erweitern, um Iterables ungleicher Länge zu verarbeiten?

Linda Hamilton
Freigeben: 2024-11-27 17:56:13
Original
420 Leute haben es durchsucht

How Can I Extend Python's zip() Function to Handle Iterables of Unequal Lengths?

Erweitern der zip()-Funktionalität: Auffüllen auf längste Länge

Pythons integrierte zip()-Funktion koppelt Elemente aus mehreren Iterables, aber es kürzt das Ergebnis auf die Länge der kürzesten Iteration. Wenn Sie eine umfassendere Zip-Datei benötigen, die mit None-Werten aufgefüllt wird, um sie an die längste Eingabe anzupassen, ziehen Sie die folgenden Lösungen in Betracht:

Python 3: itertools.zip_longest

In Python 3. itertools stellt die Funktion zip_longest() bereit. Die Ergebnisliste wird so erweitert, dass sie der Länge der längsten Eingabe entspricht.

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

Sie können einen benutzerdefinierten Füllwert mithilfe des Parameters fillvalue angeben:

list(itertools.zip_longest(a, b, c, fillvalue='foo'))
# [('a1', 'b1', 'c1'), ('foo', 'b2', 'c2'), ('foo', 'b3', 'foo')]
Nach dem Login kopieren

Python 2: itertools.izip_longest oder map Keine

In Python 2 können Sie verwenden itertools.izip_longest (eingeführt in Python 2.6) oder verwenden Sie Map mit None.

from itertools import izip_longest
a = ['a1']
b = ['b1', 'b2', 'b3']
c = ['c1', 'c2']

list(izip_longest(a, b, c))
# [('a1', 'b1', 'c1'), (None, 'b2', 'c2'), (None, 'b3', None)]

map(None, a, b, c)
# [('a1', 'b1', 'c1'), (None, 'b2', 'c2'), (None, 'b3', None)]
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich die zip()-Funktion von Python erweitern, um Iterables ungleicher Länge zu verarbeiten?. 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