Viele Python-Programmierer haben die eingebaute ZIP-Funktion nicht wirklich auf dem Schirm. Dabei kann Sie das Leben in vielen Situationen erleichtern, da nur 1 Zeile einiges an Schleifen-Programmierung ersparen kann. Nach dem Reißverschluß-Verfahren (engl. Zipper) fügt sie Listen automatisch zusammen oder erstellt mal schnell ein Dictionary aus 2 Arrays.
Beispiele zu Python’s ZIP-Funktion
In Python wird die zip
Funktion verwendet, um 2 oder mehr Iterables zusammenzufassen, indem sie Elemente paarweise verbindet. Hier ist ein einfaches Beispiel:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# Beispiel-Listen liste1 = [1, 2, 3] liste2 = ['a', 'b', 'c'] # Verwendung von zip, um die Listen zu paaren gezippte_listen = zip(liste1, liste2) # Um die Ergebnisse zu sehen, können Sie die zip-Ergebnisse in eine Liste umwandeln ergebnis_liste = list(gezippte_listen) # Ausgabe anzeigen print(ergebnis_liste) |
Die Ausgabe dieses Codes wird eine Liste von Tupeln sein, die die paarweisen Elemente der beiden Listen enthält:
1 2 |
[(1, 'a'), (2, 'b'), (3, 'c')] |
Du kannst zip
auch mit mehr als 2 Iterables verwenden:
1 2 3 4 5 6 7 8 9 |
liste1 = [1, 2, 3] liste2 = ['a', 'b', 'c'] liste3 = ['x', 'y', 'z'] gezippte_listen = zip(liste1, liste2, liste3) ergebnis_liste = list(gezippte_listen) print(ergebnis_liste) |
Die Ausgabe wird eine Liste von Tupeln sein, die alle 3 Listen paarweise kombinieren:
1 |
[(1, 'a', 'x'), (2, 'b', 'y'), (3, 'c', 'z')] |
Beachte, dass die zip
Funktion die Ergebnisse als Iterator zurückgibt. In den obigen Beispielen habe ich list()
verwendet, um den Iterator in eine Liste umzuwandeln und die Ergebnisse anzuzeigen.
Python: Mit zip() ein Dictionary aus Listen erstellen
Du kannst zip
verwenden, um ein Dictionary zu erstellen, indem Du 2 oder mehr Listen paarweise verbindest und dann die dict()
-Funktion verwenden, um diese Paare in ein Dictionary umzuwandeln. Hier ist ein Beispiel:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# Beispiel-Listen schlüssel = ['Name', 'Alter', 'Stadt'] werte = ['Alice', 25, 'Berlin'] # Verwendung von zip, um Paare zu erstellen gezippte_paare = zip(schlüssel, werte) # Verwendung von dict(), um die Paare in ein Dictionary umzuwandeln ergebnis_dict = dict(gezippte_paare) # Ausgabe anzeigen print(ergebnis_dict) |
Die Ausgabe dieses Codes wird ein Dictionary sein, das Schlüssel-Wert-Paare entsprechend der Reihenfolge der beiden Listen enthält:
1 2 |
{'Name': 'Alice', 'Alter': 25, 'Stadt': 'Berlin'} |
Vorsicht: Was macht zip(), wenn die Listen ungleich lang sind?
Wenn die Listen unterschiedliche Längen haben und Du zip
verwendest, werden die Ergebnisse bis zur kürzesten Liste erstellt. Elemente der längeren Listen, die über die Länge der kürzesten Liste hinausgehen, werden ignoriert.
Hier ist ein Beispiel:
1 2 3 4 5 6 7 8 |
liste1 = [1, 2, 3] liste2 = ['a', 'b'] gezippte_listen = zip(liste1, liste2) ergebnis_liste = list(gezippte_listen) print(ergebnis_liste) |
Die Ausgabe dieses Codes wird eine Liste von Tupeln sein, die nur die paarweisen Elemente der kürzesten Liste enthält:
1 |
[(1, 'a'), (2, 'b')] |
In diesem Beispiel wird das 3. Element der Liste liste1
(3) ignoriert, da die Liste liste2
nur zwei Elemente hat.
Es ist wichtig, dies zu berücksichtigen, wenn Du zip
mit Listen unterschiedlicher Längen verwenden, um sicherzustellen, dass das gewünschte Verhalten erreicht wird.