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 .