So komprimieren sie zwei listen in python


Oft sind Sie daran interessiert, zwei Listen in Python zu komprimieren (oder zu „zusammenführen“). Glücklicherweise ist dies mit der Funktion zip() einfach zu bewerkstelligen.

Dieses Tutorial zeigt einige Beispiele für die praktische Verwendung dieser Funktion.

Beispiel 1: Komprimieren Sie zwei Listen gleicher Länge zu einer einzigen Liste

Die folgende Syntax zeigt, wie zwei Listen gleicher Länge zu einer komprimiert werden:

 #define list a and list b
a = ['a', 'b', 'c']
b = [1, 2, 3]

#zip the two lists together into one list
list( zip (a,b))

[('a', 1), ('b', 2), ('c', 3)]

Beispiel 2: Komprimieren Sie zwei Listen gleicher Länge in ein Wörterbuch

Die folgende Syntax zeigt, wie zwei Listen gleicher Länge in ein Wörterbuch komprimiert werden:

 #define list of keys and list of values
keys = ['a', 'b', 'c']
values = [1, 2, 3]

#zip the two lists together into one dictionary
dict( zip (keys, values)) 

{'a': 1, 'b': 2, 'c': 3}

Beispiel 3: Komprimieren Sie zwei Listen ungleicher Länge

Wenn Ihre beiden Listen ungleiche Längen haben, wird zip() auf die Länge der kürzeren Liste gekürzt:

 #define list a and list b
a = ['a', 'b', 'c', 'd']
b = [1, 2, 3]

#zip the two lists together into one list
list( zip (a,b))

[('a', 1), ('b', 2), ('c', 3)]

Wenn Sie verhindern möchten, dass zip() auf die Länge der kürzesten Liste gekürzt wird, können Sie stattdessen die Funktion zip_longest() aus der itertools- Bibliothek verwenden.

Standardmäßig füllt diese Funktion „Keine“ für fehlende Werte aus:

 from itertools import zip_longest

#define list a and list b
a = ['a', 'b', 'c', 'd']
b = [1, 2, 3]

#zip the two lists together without truncating to length of shortest list
list( zip_longest (a, b))

[('a', 1), ('b', 2), ('c', 3), ('d', None)]

Sie können jedoch das Argument fillvalue verwenden, um einen anderen zu verwendenden Füllwert anzugeben:

 #define list a and list b
a = ['a', 'b', 'c', 'd']
b = [1, 2, 3]

#zip the two lists together, using fill value of '0'
list( zip_longest (a, b, fillvalue= 0 ))

[('a', 1), ('b', 2), ('c', 3), ('d', 0)]

Die vollständige Dokumentation zur Funktion zip_longest() finden Sie hier .

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert