Python-Dictionaries: Auf Elemente zugreifen
Alle Methoden für den Zugriff auf Python-Dictionary-Elemente: Klammernotation, get(), keys(), values(), items(), Mitgliedschaftsprüfung und verschachtelte Dicts.
Python-Dictionaries speichern Daten als Schlüssel-Wert-Paare. Zu wissen, wie man diese Werte ausliest — und was passiert, wenn ein Schlüssel fehlt — ist die Grundlage für die Arbeit mit jedem Dictionary. Dieses Kapitel behandelt alle gängigen Zugriffstechniken: Klammernotation, die .get()-Methode, die Iteration mit .keys(), .values() und .items() sowie die Mitgliedschaftsprüfung mit in.
Klammernotation
Der direkteste Weg, einen Wert abzurufen, besteht darin, den Dictionary-Namen gefolgt vom Schlüssel in eckigen Klammern zu schreiben.
Auf einen Dictionary-Wert per Schlüssel zugreifen
Python sucht 'Bob' in der Hash-Tabelle und gibt den zugehörigen Wert in O(1)-Zeit zurück, unabhängig davon, wie viele Schlüssel das Dictionary enthält.
KeyError bei fehlendem Schlüssel
Wenn der Schlüssel nicht vorhanden ist, wirft Python einen KeyError und stoppt die Ausführung.
ages = {'Alice': 27, 'Bob': 34, 'Charlie': 45}
print(ages['Dave']) # KeyError: 'Dave'Behandeln Sie diesen Fall immer — entweder durch eine vorherige Mitgliedschaftsprüfung (siehe Abschnitt zum Operator in weiter unten) oder durch die Verwendung von .get().
Die .get()-Methode
.get(key) gibt den Wert für key zurück, wenn er existiert, andernfalls None — es wird keine Ausnahme ausgelöst.
.get() für den sicheren Zugriff auf einen Dictionary-Schlüssel verwenden
Einen Standardwert angeben
Übergeben Sie ein zweites Argument an .get(), um anstelle von None einen Fallback-Wert zu erhalten:
colors = {'apple': 'red', 'banana': 'yellow', 'grape': 'purple'}
color = colors.get('orange', 'unknown')
print(color) # unknownDies ist die idiomatische Methode, um auf einen möglicherweise nicht vorhandenen Schlüssel zuzugreifen, ohne den Code in einen try/except-Block einzubetten.
Mitgliedschaftsprüfung mit in
Verwenden Sie den Operator in, um zu prüfen, ob ein Schlüssel vorhanden ist, bevor Sie darauf zugreifen:
ages = {'Alice': 27, 'Bob': 34, 'Charlie': 45}
if 'Alice' in ages:
print(ages['Alice']) # 27
print('Dave' in ages) # False
print('Bob' in ages) # Truein prüft nur Schlüssel, keine Werte. Es läuft in O(1)-Zeit, da Dictionaries hash-basiert sind.
Auf alle Schlüssel, Werte und Einträge zugreifen
Python-Dictionaries stellen drei View-Objekte bereit, mit denen Sie ihren Inhalt iterieren oder überprüfen können, ohne eine separate Liste zu erstellen.
.keys() — alle Schlüssel
colors = {'apple': 'red', 'banana': 'yellow', 'grape': 'purple'}
print(colors.keys())
# dict_keys(['apple', 'banana', 'grape'])
for fruit in colors.keys():
print(fruit)
# apple
# banana
# grape.values() — alle Werte
colors = {'apple': 'red', 'banana': 'yellow', 'grape': 'purple'}
print(colors.values())
# dict_values(['red', 'yellow', 'purple'])
for color in colors.values():
print(color)
# red
# yellow
# purple.items() — Schlüssel-Wert-Paare
.items() gibt jeden Eintrag als (key, value)-Tupel zurück. Durch Tupel-Entpacken ist dies die nützlichste View für die meisten Iterationsaufgaben:
colors = {'apple': 'red', 'banana': 'yellow', 'grape': 'purple'}
for fruit, color in colors.items():
print(f'{fruit} is {color}')
# apple is red
# banana is yellow
# grape is purpleView-Objekte sind dynamisch — sie spiegeln den aktuellen Zustand des Dictionarys wider. Wenn Sie nach dem Erstellen einer View einen Schlüssel hinzufügen oder entfernen, wird die View automatisch aktualisiert.
Auf Elemente in einem verschachtelten Dictionary zugreifen
Wenn ein Dictionary-Wert selbst ein Dictionary ist, können Sie eckige Klammern (oder .get()-Aufrufe) verketten, um den inneren Wert zu erreichen.
Auf Werte in einem verschachtelten Dictionary zugreifen
Für einen sichereren Zugriff über mehrere Ebenen können Sie .get()-Aufrufe verketten:
title = library.get('book4', {}).get('title', 'Not found')
print(title) # Not foundWeitere Informationen zu mehrstufigen Datenstrukturen finden Sie im Kapitel Verschachtelte Dictionaries.
Die richtige Zugriffsmethode wählen
| Situation | Empfohlene Vorgehensweise |
|---|---|
| Schlüssel ist garantiert vorhanden | d[key] — klar und schnell |
Schlüssel fehlt möglicherweise, None ist akzeptabel | d.get(key) |
| Schlüssel fehlt möglicherweise, Fallback wird benötigt | d.get(key, default) |
| Prüfung vor dem Zugriff | if key in d: d[key] |
| Alle Einträge iterieren | for k, v in d.items() |
Was kommt als Nächstes
Sobald Sie Werte aus einem Dictionary lesen können, sind die nächsten logischen Schritte:
- Elemente hinzufügen — neue Schlüssel-Wert-Paare einfügen
- Elemente ändern — vorhandene Werte aktualisieren
- Dictionaries durchlaufen — Iterationsmuster im Detail
- Dictionary-Methoden — die vollständige Methodenreferenz