Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich die Zip-Funktion von Python auf die Länge des längsten Iterables auffüllen?

Wie kann ich die Zip-Funktion von Python auf die Länge des längsten Iterables auffüllen?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-26 10:49:09208Durchsuche

How Can I Pad Python's Zip Function to the Length of the Longest Iterable?

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)]
zu

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!

Stellungnahme:
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