dict.get()

Zwraca wartość dla klucza albo wartość domyślną, gdy klucza nie ma w słowniku.

Zwraca
Wartość przypisaną do klucza albo default.
Zmienia oryginał
Nie
Na tej stronie

Przykład

#
Python
student = {"name": "Ania", "points": 1240}

print(student.get("name"))
print(student.get("level"))
print(student.get("level", 1))
print(student)
Wynikzapisany wynik, możesz go sprawdzić
Ania
None
1
{'name': 'Ania', 'points': 1240}

Definicja i zastosowanie

#

Metoda get(klucz) odczytuje wartość ze słownika podobnie jak nawiasy kwadratowe, ale nie zgłasza błędu, gdy klucza brakuje. Zamiast KeyError zwraca None albo wartość podaną jako drugi argument.

Dzięki temu dobrze sprawdza się przy danych, w których część pól jest opcjonalna, na przykład w ustawieniach użytkownika czy odpowiedziach z API. Zapis settings.get("theme", "dark") od razu określa wartość zastępczą.

Metoda tylko czyta i nie dodaje brakującego klucza do słownika. Jeśli chcesz przy okazji zapisać wartość domyślną, użyj setdefault(). Pamiętaj też, że get() nie odróżni braku klucza od klucza z wartością None. Do tego służy operator in.

Składnia

#
Składnia
slownik.get(key, default=None)

Parametry

#
  • key

    klucz słownika

    Klucz, którego wartość chcesz odczytać.
  • default

    opcjonalny, domyślnie None

    Wartość zwracana, gdy klucza nie ma w słowniku.

Więcej przykładów

#
Nawiasy kwadratowe a get()
Python
settings = {"theme": "dark"}

try:
    print(settings["lang"])
except KeyError as error:
    print("KeyError:", error)

print(settings.get("lang", "pl"))
Wynikzapisany wynik, możesz go sprawdzić
KeyError: 'lang'
pl
Zliczanie odpowiedzi
Python
answers = ["B", "A", "B", "C", "B"]
counts = {}

for answer in answers:
    counts[answer] = counts.get(answer, 0) + 1

print(counts)
Wynikzapisany wynik, możesz go sprawdzić
{'B': 3, 'A': 1, 'C': 1}

Dobre praktyki

#
  • Nawiasy kwadratowe stosuj dla kluczy, które muszą istnieć, bo ich brak to błąd wart zauważenia. get() zostaw dla pól opcjonalnych.
  • Wartość domyślna jest obliczana przed wywołaniem metody, nawet gdy klucz istnieje. Kosztownych obliczeń nie umieszczaj w get(), tylko w warunku z in.
  • Do zliczania wystąpień wygodniejszy jest collections.Counter, a do grupowania collections.defaultdict.

Powiązane hasła

#

Widzisz błąd albo brakuje przykładu? Napisz do nas.