Verständnis der `dict.get()`-Methode von Python
Ethan Miller
Product Engineer · Leapcell

Key Takeaways
dict.get()
verhindertKeyError
beim Zugriff auf fehlende Schlüssel.- Sie können einen Standardrückgabewert mit
get()
angeben. get()
verbessert die Lesbarkeit und Robustheit des Codes.
In Python sind Dictionaries vielseitige Datenstrukturen, die Schlüssel-Wert-Paare speichern und so einen effizienten Datenabruf ermöglichen. Der Zugriff auf Werte in einem Dictionary erfolgt typischerweise über eckige Klammern ([]
) mit dem Schlüssel:
my_dict = {'name': 'Alice', 'age': 30} print(my_dict['name']) # Ausgabe: Alice
Wenn Sie jedoch versuchen, auf einen Schlüssel zuzugreifen, der nicht existiert, wirft Python einen KeyError
:
print(my_dict['gender']) # Löst KeyError aus
Um solche Situationen elegant zu behandeln, bietet Python die Methode get()
an.
Was ist die get()
-Methode?
Mit der Methode get()
können Sie den Wert abrufen, der einem bestimmten Schlüssel zugeordnet ist. Wenn der Schlüssel im Dictionary existiert, gibt get()
den entsprechenden Wert zurück. Wenn der Schlüssel nicht vorhanden ist, wird ein Standardwert zurückgegeben, der None
ist, sofern nicht anders angegeben. Die Syntax lautet:
dictionary.get(key, default_value)
Hier:
key
: Der Schlüssel, nach dem im Dictionary gesucht werden soll.default_value
(optional): Der Wert, der zurückgegeben werden soll, wenn der Schlüssel nicht gefunden wird. Wenn nicht angegeben, wird standardmäßigNone
verwendet.
Vorteile der Verwendung von get()
- Vermeidung von KeyError: Die Verwendung von
get()
verhindert, dass das Programm einenKeyError
auslöst, wenn ein Schlüssel fehlt. - Bereitstellung von Standardwerten: Es ermöglicht die Angabe eines Standardrückgabewerts, wenn der Schlüssel nicht vorhanden ist, wodurch der Code robuster und lesbarer wird.
Beispiele
Grundlegende Verwendung:
person = {'name': 'Alice', 'age': 30} # Schlüssel existiert print(person.get('name')) # Ausgabe: Alice # Schlüssel existiert nicht print(person.get('gender')) # Ausgabe: None
Verwendung eines Standardwerts:
person = {'name': 'Alice', 'age': 30} # Schlüssel existiert nicht, Standardwert angeben print(person.get('gender', 'Female')) # Ausgabe: Female
Unterschied zwischen get()
und direktem Zugriff:
person = {'name': 'Alice', 'age': 30} # Verwendung von get() print(person.get('gender')) # Ausgabe: None # Verwendung des direkten Zugriffs print(person['gender']) # Löst KeyError aus
Praktischer Anwendungsfall
Betrachten Sie ein Szenario, in dem Sie das Vorkommen von Buchstaben in einem Wort zählen müssen. Mit get()
können Sie den Code vereinfachen:
word = 'hello' letter_count = {} for letter in word: letter_count[letter] = letter_count.get(letter, 0) + 1 print(letter_count) # Ausgabe: {'h': 1, 'e': 1, 'l': 2, 'o': 1}
In diesem Beispiel ruft letter_count.get(letter, 0)
die aktuelle Anzahl des Buchstabens ab, wobei standardmäßig 0
verwendet wird, wenn der Buchstabe noch nicht im Dictionary vorhanden ist. Dieser Ansatz vermeidet die Notwendigkeit von bedingten Prüfungen oder Ausnahmebehandlungen beim Aktualisieren der Anzahl.
Fazit
Die Methode get()
ist ein leistungsstarkes Werkzeug für Dictionary-Operationen in Python und bietet eine sichere und prägnante Möglichkeit, auf Werte zuzugreifen. Durch die Bereitstellung eines Standardwerts für fehlende Schlüssel verbessert sie die Lesbarkeit und Robustheit des Codes und ist in vielen Szenarien die bevorzugte Wahl.
FAQs
dict.get()
gibt None
oder einen Standardwert zurück, wenn der Schlüssel fehlt, während eckige Klammern einen KeyError
auslösen.
Ja, get()
vermeidet die Notwendigkeit von if
-Anweisungen, indem es einen Fallback-Wert zurückgibt.
Etwas, aber der Leistungsunterschied ist für die meisten Anwendungsfälle vernachlässigbar und wird oft durch die Code-Klarheit aufgewogen.
Wir sind Leapcell, Ihre erste Wahl für das Hosten von Python-Projekten.
Leapcell ist die Serverlose Plattform der nächsten Generation für Webhosting, asynchrone Aufgaben und Redis:
Mehrsprachige Unterstützung
- Entwickeln Sie mit Node.js, Python, Go oder Rust.
Stellen Sie unbegrenzt Projekte kostenlos bereit
- zahlen Sie nur für die Nutzung – keine Anfragen, keine Gebühren.
Unschlagbare Kosteneffizienz
- Pay-as-you-go ohne Leerlaufgebühren.
- Beispiel: 25 US-Dollar unterstützen 6,94 Millionen Anfragen bei einer durchschnittlichen Antwortzeit von 60 ms.
Optimierte Entwicklererfahrung
- Intuitive Benutzeroberfläche für mühelose Einrichtung.
- Vollständig automatisierte CI/CD-Pipelines und GitOps-Integration.
- Echtzeitmetriken und -protokollierung für umsetzbare Einblicke.
Mühelose Skalierbarkeit und hohe Leistung
- Automatische Skalierung zur einfachen Bewältigung hoher Parallelität.
- Keine betrieblichen Gemeinkosten – Konzentrieren Sie sich einfach auf das Bauen.
Erfahren Sie mehr in der Dokumentation!
Folgen Sie uns auf X: @LeapcellHQ