Obsługa brakujących kluczy w słownikach Pythona

| | | | | | | | | | | | | | | | | | | |

# kod Pythona do prezentacji słownika i
# brakujące błąd wartości


# inicjowanie słownika

d = { `a` : 1 , ` b` : 2 }


# próba wyświetlenia wartości brakującego klucza

print ( "Wartość powiązana z `c` to: " )

print (d [ ` c` ])

Błąd:

Traceback (ostatnie wywołanie ostatnie): Plik „46a9aac96614587f5b794e451a8f4f5f.py”, wiersz 9, w druku (d [`c`]) KeyError:` c` 

In w powyższym przykładzie żaden klucz o nazwie „c” w słowniku nie powodował błędu w czasie wykonywania. Aby uniknąć takich warunków i ostrzec użytkownika, że ​​brakuje określonego klucza lub wysłać domyślną wiadomość do tej lokalizacji, istnieje kilka sposobów obsługi brakujących kluczy.

Metoda 1: Użycie get()

Metoda get (key, def_val) jest przydatna, gdy potrzebujemy zweryfikować klucz. Jeśli klucz jest obecny, wypisywana jest wartość powiązana z kluczem, w przeciwnym razie zwracana jest wartość def_value przekazana w argumentach.

Metoda 2: Użycie setdefault()

setdefault (klucz, def_value) działa jak get (), ale różnica polega na tym, że za każdym razem, gdy brakuje klucza, tworzony jest nowy klucz z def_value powiązaną z klucz przekazany do argumentów.

Aby zaimplementować powyższe funkcje, kliknij Defaultdict " — jest to kontener zdefiniowany w moduł o nazwie „kolekcja ”. Jako argument przyjmuje funkcję (domyślna fabryka) . Domyślnie domyślne ustawienie fabryczne to „int”, co jest, 0 . Jeśli brakuje klucza — defaultdict, zwraca i domyślny to wyświetlane domyślnie. Ma pierwszeństwo przed get () lub setdefault ().

# Kod Pythona do zademonstrowania defaultdict


# import & quot; kolekcje & quot; for defaultdict

importuj kolekcje


# deklaracja domyślna
# ustawia domyślną wartość "Key not found" dla brakujących kluczy

defd = kolekcje. defaultdict ( lambda : `Nie znaleziono klucza` )


# wartości inicjujących

defd [ `a` ] = 1


# wartości inicjujących

defd [ `b` ] = 2


# wartość wydruku

print ( "Wartość powiązana z ` a` to: " , koniec = "")

print (defd [ `a` ])


# wartość wydruku skojarzona z ' c '

print ( "Wartość powiązana z ` c` is: " , end = " ")

print ( defd [ `c` ])

Dane wyjściowe:

Wartość powiązana z `a` to: 1 Wartość powiązana z `c` to: Nie znaleziono klucza 

Ten artykuł dzięki uprzejmości Manjeet Singh . Jeśli jesteś Python.Engineering i chcesz wnieść swój wkład, możesz również napisać artykuł, korzystając z Contribute.python.engineering lub publikując artykuł przyczynić się @ python.engineering. Zobacz mój artykuł zamieszczony na stronie głównej Python.Engineering i pomóż innym geekom.

Proszę publikować komentarze, jeśli znajdziesz coś nie tak lub jeśli chcesz udostępnić więcej informacji na temat omówiony powyżej.