Skip to content
Anleitungen
Python
Wie man zwei Listen in Python mit Leichtigkeit zippt

Wie man zwei Listen in Python mit Leichtigkeit zippt

Python ist bekannt für seine Lesbarkeit und elegante Syntax und bietet eine Vielzahl eingebauter Funktionen, um das Leben für Entwickler zu erleichtern. Eine davon ist die zip()-Funktion, ein vielseitiges Werkzeug zum gleichzeitigen Iterieren über mehrere Listen. In dieser Anleitung werden wir uns eingehend mit der Python zip()-Funktion beschäftigen und zeigen, wie man mehrere Listen durchläuft und Dictionaries dynamisch erstellt.

Möchten Sie schnell Data Visualization aus Python Pandas Dataframe ohne Code erstellen?

PyGWalker ist eine Python-Bibliothek für explorative Datenanalyse mit Visualisierung. PyGWalker (opens in a new tab) kann Ihren Workflow zur Datenanalyse und Datenvisualisierung in Jupyter Notebook vereinfachen, indem es Ihr Pandas-Dataframe (und Polars-Dataframe) in eine Tableau-ähnliche Benutzeroberfläche für die visuelle Exploration umwandelt.

PyGWalker für Datenvisualisierung (opens in a new tab)

Verständnis der Python zip()-Funktion

Die zip()-Funktion ist eine integrierte Python-Funktion, die Elemente aus zwei oder mehr iterablen Objekten (wie Listen, Tupeln oder Mengen) in Tupeln paarweise zusammenfasst. Die Funktion gibt einen Iterator zurück, der diese Tupel generiert. Wenn die übergebenen Iteratoren unterschiedliche Längen haben, bestimmt der Iterator mit den wenigsten Elementen die Länge des generierten Ergebnisses.

list1 = ["a", "b", "c"]
list2 = [1, 2, 3]
zipped = zip(list1, list2)
print(list(zipped))

Dies führt zu folgender Ausgabe:

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

Parallele Iteration mit der Python zip()-Funktion

Häufig ist es in der Programmierung erforderlich, zwei oder mehr Listen parallel zu durchlaufen. Die zip()-Funktion bietet eine einfache und effiziente Möglichkeit, dies zu erreichen, wodurch der Bedarf an Indizierung und damit möglichen Fehlern erheblich reduziert wird.

Betrachten Sie zwei Listen: Eine enthält die Namen der Studierenden und die andere speichert ihre jeweiligen Noten. Wenn Sie den Namen jedes Studierenden zusammen mit seiner Note ausgeben möchten, können Sie die zip()-Funktion verwenden.

students = ["Alice", "Bob", "Charlie"]
grades = [85, 90, 95]
 
for student, grade in zip(students, grades):
    print(f"{student}: {grade}")

Erstellen von Dictionaries mit der Python zip()-Funktion

Die zip()-Funktion in Python glänzt durch ihre Fähigkeit, Dictionaries dynamisch zu erstellen. Dictionaries in Python sind Datenstrukturen, die Daten als Schlüssel-Wert-Paare speichern. Wenn Sie zwei Listen haben - eine mit Schlüsseln und eine mit den entsprechenden Werten - können Sie sie mit der zip()-Funktion zu einem Dictionary kombinieren.

keys = ['apple', 'banana', 'cherry']
values = [1, 2, 3]
fruit_dict = dict(zip(keys, values))
print(fruit_dict)

Dies führt zu folgender Ausgabe:

{'apple': 1, 'banana': 2, 'cherry': 3}

Diese Funktionalität eröffnet viele Möglichkeiten, Datenstrukturen flexibel zu erstellen und zu ändern, was insbesondere bei der Datenanalyse und in anderen realen Anwendungen von Vorteil ist.

Python zip()-Funktion mit ungeordneten Iterables

Während Listen geordnete Sammlungen sind, sind einige Python-Sammlungen wie Mengen und Dictionaries ungeordnet, was bedeutet, dass ihre Elemente keine spezifische Reihenfolge haben. Was passiert, wenn wir die zip()-Funktion mit solchen Iterablen verwenden?

Wenn sie mit ungeordneten Sammlungen verwendet wird, erzeugt die zip()-Funktion immer noch Tupel, aber die Reihenfolge dieser Tupel hängt davon ab, wie Python die Elemente der Sammlungen intern ordnet.

set1 = {"apple", "banana", "cherry"}
set2 = {1, 2, 3}
zipped_set = zip(set1, set2)
print(list(zipped_set))

Beachten Sie, dass die Ausgabe auf unterschiedlichen Durchläufen unterschiedlich sein kann, da Mengen ungeordnet sind.


In dem bisherigen Abschnitt haben wir einige gängige Verwendungsmöglichkeiten der Python zip()-Funktion erkundet. Im nächsten Abschnitt werden wir uns weiter in diese vielseitige Funktion vertiefen, ihre Anwendungen in verschiedenen Szenarien veranschaulichen und sie mit anderen Python-Funktionen vergleichen.

Lösung realer Probleme mit der Python zip()-Funktion

Die Python zip()-Funktion kann ein hervorragendes Werkzeug sein, um verschiedene Programmierprobleme zu lösen. Ob es sich um den Umgang mit Big Data handelt oder einfach nur um das Erstellen von Dictionaries auf die Schnelle geht, die zip()-Funktion bietet oft eine elegante Lösung.

Betrachten Sie ein Szenario, in dem Sie es mit zwei Listen zu tun haben - eine enthält Produktnamen und die andere die jeweiligen Preise. Wenn Sie das Produkt mit dem höchsten Preis finden möchten, können Sie dies mühelos mit der zip()-Funktion tun.

products = ["Äpfel", "Bananen", "Kirschen"]
prices = [1.5, 0.5, 3.2]
 
# Die beiden Listen zippen und die Funktion max() verwenden
max_price_product = max(zip(prices, products))
print(max_price_product)

Die Ausgabe wird das Tupel mit dem höchsten Preis anzeigen und das Produkt mit den höchsten Kosten zeigen.

Python zip()-Funktion vs enumerate()-Funktion

Sowohl zip() als auch enumerate() sind integrierte Python-Funktionen, die mit iterablen Objekten umgehen. Die zip()-Funktion, wie wir gesehen haben, wird verwendet, um gleichzeitig über mehrere Iterables zu iterieren, während die enumerate()-Funktion einem Iterable einen Zähler hinzufügt und ein Enumerate-Objekt zurückgibt.

Obwohl diese Funktionen ähnlich erscheinen mögen, erfüllen sie unterschiedliche Zwecke. Die zip()-Funktion eignet sich ideal für Szenarien, in denen Sie über mehrere Listen parallel iterieren oder Dictionaries dynamisch erstellen müssen. Im Gegensatz dazu kommt die enumerate()-Funktion dann zum Einsatz, wenn Sie zusätzlich zu den Listenelementen automatisch einen Zähler benötigen, beispielsweise zum Ausgeben des Indexes von Elementen oder zum Durchlaufen einer Liste mit dem Elementindex.

Erstellung von Dictionaries mit der Python zip()-Funktion

Wie wir bereits gesehen haben, kann die zip() Funktion in Python besonders mächtig sein, wenn es darum geht, Wörterbücher zu erstellen. Dies wird besonders nützlich, wenn man mit großen Datensätzen umgeht, bei denen das manuelle Erstellen von Wörterbüchern unpraktisch wäre. Die zip() Funktion ermöglicht es uns, Wörterbücher dynamisch zu konstruieren, Zeit und Aufwand zu sparen und unseren Code lesbarer und effizienter zu machen.

names = ["Alice", "Bob", "Charlie"]
ages = [25, 30, 35]
person_dict = dict(zip(names, ages))
print(person_dict)

Dies gibt aus:

{'Alice': 25, 'Bob': 30, 'Charlie': 35}

Fazit

Damit kommen wir zum Ende unseres tiefen Eintauchens in die zip() Funktion in Python. Egal, ob Sie mehrere Listen parallel durchlaufen, Wörterbücher dynamisch erstellen oder einfach nur saubereren und effizienteren Code schreiben möchten, zip() kann ein unschätzbares Werkzeug in Ihrer Python-Toolbox sein.

FAQ

  1. Was ist die Python zip() Funktion?

    Die zip() Funktion ist eine integrierte Python Funktion, die es Ihnen ermöglicht, über mehrere Listen oder andere iterable Objekte parallel zu iterieren. Sie paart die entsprechenden Elemente aus jedem iterable und gibt einen zip-Objekt zurück, das aus Tupeln besteht.

  2. Wie funktioniert die Python zip() Funktion mit Listen unterschiedlicher Länge?

    Wenn die zip() Funktion mit Listen unterschiedlicher Länge verwendet wird, bestimmt die Länge der kürzesten Liste die Länge des resultierenden Outputs. Die zusätzlichen Elemente der längeren Liste werden einfach ignoriert.

  3. Kann die Python zip() Funktion mit Sets und Dictionaries verwendet werden?

    Ja, die zip() Funktion kann mit jeder Art von Iterable verwendet werden, einschließlich Sets und Dictionaries. Beachten Sie jedoch, dass Sets und Dictionaries ungeordnete Sammlungen sind, daher könnte die Reihenfolge der Elemente in den resultierenden Tupeln nicht vorhersehbar sein.