Kurs
Ein Dictionary ist eine eingebaute, veränderbare Python-Datenstruktur. Es ist verwandt mit Liste, Set und Tuples. Im Gegensatz zu Listen ist es jedoch nicht über eine Zahlenfolge indiziert, sondern über Keys und lässt sich als assoziatives Array verstehen. Abstrakt betrachtet besteht es aus einem Key mit einem zugehörigen Value. In Python entspricht das Dictionary der Implementierung einer Hash-Tabelle.
Was sind Keys?
Wie in der folgenden Abbildung gezeigt, sind Keys unveränderliche Datentypen (also nicht änderbar), typischerweise Strings oder Zahlen. Ein Key darf jedoch kein veränderlicher Datentyp sein, zum Beispiel eine Liste. Keys sind innerhalb eines Dictionary eindeutig und dürfen nicht doppelt vorkommen. Wird ein Key mehrfach verwendet, überschreiben spätere Einträge den vorherigen Wert.

Ein Key ist mit einem Value verknüpft und bildet so eine Art Mapping. Entfernst du in der Abbildung die Keys, bleibt nur noch eine Datenstruktur mit einer Zahlenfolge. Dictionaries speichern daher an jeder Position ein Key:Value-Paar.
Ein Dictionary wird mit geschweiften Klammern {} dargestellt. Darin stehen die durch Kommas getrennten Key:Value-Paare.
Ein Dictionary erstellen
Syntax
Zur Auffrischung findest du hier ein Grundrezept zum Erstellen eines Dictionary:
my_dict = {
"key1":"value1",
"key2":"value2"
}
Im obigen Beispiel sind sowohl die Keys als auch die Values Strings.
Beispiel: Ein Dictionary erstellen
pop = [30.55, 2.77, 39.21]
countries = ["afghanistan", "albania", "algeria"]
Lass uns die Bevölkerungsdaten in ein Dictionary umwandeln. Zum Erstellen nutzt du die geschweiften Klammern. Darin stehen mehrere Key:Value-Paare. In diesem Fall sind die Keys die Ländernamen und die Values die entsprechenden Bevölkerungszahlen.
Der erste Key ist Afghanistan, sein zugehöriger Wert ist 30.55. Beachte den Doppelpunkt, der Key und Value trennt. Wiederhole das für die beiden anderen Key:Value-Paare und speichere das Ergebnis in der Variable world.
Um nun die Bevölkerungszahl für Albania zu finden, tippst du einfach world und dann den String Albania in eckigen Klammern. Anders ausgedrückt: Du übergibst den Key in eckigen Klammern und erhältst den zugehörigen Wert.
world = {"afghanistan":30.55, "albania":2.77, "algeria":39.21}
world["albania"]
2.77
Dieser Ansatz ist nicht nur intuitiv, sondern auch sehr effizient, da Python Keys extrem schnell nachschlagen kann – selbst in großen Dictionaries.
Interaktives Beispiel: Ein Dictionary erstellen
Im folgenden Beispiel nutzt du die Strings in countries und capitals und erstellst ein Dictionary namens europe mit vier Key:Value-Paaren. Dabei sind die countries die Keys und capitals die Values. Achte auf die Kleinschreibung! Verwende überall Kleinbuchstaben. Gib zum Schluss europe aus, um zu prüfen, ob das Ergebnis passt.
# Definition von Ländern und Hauptstädten
countries = ['spain', 'france', 'germany', 'norway']
capitals = ['madrid', 'paris', 'berlin', 'oslo']
# Aus den Strings in countries und capitals das Dictionary europe erstellen
europe = {'spain':'madrid', 'france':'paris', 'germany':'berlin', 'norway':'oslo'}
# europe ausgeben
print(europe)
Beim Ausführen des Codes erhältst du folgende Ausgabe:
{'norway': 'oslo', 'germany': 'berlin', 'france': 'paris', 'spain': 'madrid'}
Wenn du mehr über Dictionaries in Python lernen möchtest, sieh dir dieses Video aus unserem Kurs Intermediate Python an.
Dieser Inhalt stammt aus dem DataCamp-Kurs Intermediate Python von Hugo Bowne-Anderson.