English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Fehlende Schlüssel in Python-Dictionaries behandeln

In Python gibt es ein Container namens Dictionary. In einem Dictionary können wir Schlüssel zu ihren Werten zuordnen. Mit einem Dictionary kann man in konstanter Zeit auf Werte zugreifen. Aber wenn ein angegebener Schlüssel nicht existiert, könnte es zu einigen Fehlern kommen.

In diesem Abschnitt werden wir sehen, wie wir solche Fehler behandeln. Wenn wir versuchen, auf einen verlorenen Schlüssel zuzugreifen, könnte solcherart ein Fehler zurückgegeben werden.

Beispielcode

country_dict = {'India': 'IN', 'Australia': 'AU', 'Brazil': 'BR'}
print(country_dict['Australia'])
print(country_dict['Canada']) # Dies wird einen Fehler zurückgeben

Ausgaberesultat

AU
---------------------------------------------------------------------------
KeyErrorTraceback (most recent call last)
<ipython-Eingabe-2-a91092e7ee85> in <module>()
      2 
      3 print(country_dict['Australia'])
----> 4 print(country_dict['Canada'])# Dies wird einen Fehler zurückgeben
KeyError: 'Canada'

Verwendungget()Methodenbehandlung von KeyError

Wir können den GET-Method verwenden, um den Schlüssel zu überprüfen. Dieser Method hat zwei Parameter. Der erste ist der Schlüssel, der zweite ist der Standardwert. Wenn der Schlüssel gefunden wird, wird der mit dem Schlüssel verknüpfte Wert zurückgegeben, aber wenn der Schlüssel nicht existiert, wird der Standardwert zurückgegeben, der als zweiter Parameter übergeben wird.

Beispielcode

country_dict = {'India': 'IN', 'Australia': 'AU', 'Brazil': 'BR'}
print(country_dict.get('Australia', 'Nicht gefunden'))
print(country_dict.get('Canada', 'Nicht gefunden'))

Ausgaberesultat

AU
Nicht gefunden

Verwendungsetdefault()Methodenbehandlung von KeyError

diesersetdefault()Methode ähnelt derget()Methode. Sie benötigt auch zwei Parameter, z.B.get()。Der erste ist der Schlüssel, der zweite ist der Standardwert. Der einzige Unterschied ist, dass, wenn ein Schlüssel fehlt, ein neuer Schlüssel mit dem Standardwert hinzugefügt wird.

Beispielcode

country_dict = {'India': 'IN', 'Australia': 'AU', 'Brazil': 'BR'}
country_dict.setdefault('Canada', 'Nicht vorhanden') #Setze einen Standardwert für Kanada
print(country_dict['Australia'])
print(country_dict['Canada'])

Ausgaberesultat

AU
Nicht vorhanden

Verwendung von defaultdict

defaultdict ist ein Behälter. Er befindet sich im Modul collections von Python. defaultdict verwendet den Standard-Factory-Parameter. Am Anfang ist der Standard-Factory auf 0 (Ganze Zahl) gesetzt. Wenn ein Schlüssel nicht existiert, gibt es den Wert des Standard-Factory zurück.

Wir müssen nicht immer wieder Methoden angeben, daher bietet es dem Dictionary-Objekt schnelleren Zugriff.

Beispielcode

import collections as col
#set the default factory with the string 'key not present'
country_dict = col.defaultdict(lambda: 'Schlüssel nicht vorhanden')
country_dict['India'] = 'IN'
country_dict['Australia'] = 'AU'
country_dict['Brazil'] = 'BR'
print(country_dict['Australia'])
print(country_dict['Canada'])

Ausgaberesultat

AU
Schlüssel nicht vorhanden