W3docs

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— editable, runs on the server

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

python— editable, runs on the server

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)  # unknown

Dies 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)    # True

in 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 purple

View-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

python— editable, runs on the server

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 found

Weitere Informationen zu mehrstufigen Datenstrukturen finden Sie im Kapitel Verschachtelte Dictionaries.

Die richtige Zugriffsmethode wählen

SituationEmpfohlene Vorgehensweise
Schlüssel ist garantiert vorhandend[key] — klar und schnell
Schlüssel fehlt möglicherweise, None ist akzeptabeld.get(key)
Schlüssel fehlt möglicherweise, Fallback wird benötigtd.get(key, default)
Prüfung vor dem Zugriffif key in d: d[key]
Alle Einträge iterierenfor 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:

Übungen

Übung
In Python, which principles are applied to access items from a list or a dictionary?
In Python, which principles are applied to access items from a list or a dictionary?
Was this page helpful?