dict.update()

Dopisuje do słownika pary z innego słownika lub argumentów, nadpisując istniejące klucze.

Zwraca
None (słownik zmienia się w miejscu).
Zmienia oryginał
Tak
Na tej stronie

Przykład

#
Python
profile = {"name": "Ania", "level": 3, "theme": "light"}

profile.update({"level": 4, "streak": 12})
print(profile)

profile.update(theme="dark")
print(profile)
Wynikzapisany wynik, możesz go sprawdzić
{'name': 'Ania', 'level': 4, 'theme': 'light', 'streak': 12}
{'name': 'Ania', 'level': 4, 'theme': 'dark', 'streak': 12}

Definicja i zastosowanie

#

Metoda update() dodaje do słownika wszystkie pary z podanego słownika, listy par albo argumentów nazwanych. Jeśli klucz już istnieje, jego wartość zostaje zastąpiona nową. Słownik zmienia się w miejscu, a metoda zwraca None.

Typowe zastosowania to nakładanie ustawień użytkownika na ustawienia domyślne oraz zmiana kilku pól rekordu naraz, zamiast przypisywania ich po kolei.

Od Pythona 3.9 dostępne są też operatory: a | b tworzy nowy, połączony słownik i nie zmienia oryginałów, a a |= b działa jak update(). Przy konflikcie kluczy zawsze wygrywa wartość z prawej strony.

Składnia

#
Składnia
slownik.update(other)
slownik.update(klucz=wartosc, …)

Parametry

#
  • other

    słownik lub kolekcja par, opcjonalny

    Źródło nowych par klucz–wartość.
  • **kwargs

    opcjonalne

    Pary podane jako argumenty nazwane, np. level=4.

Więcej przykładów

#
Ustawienia domyślne i operator |
Python
defaults = {"theme": "dark", "lang": "pl", "sound": True}
user = {"lang": "en", "sound": False}

settings = defaults | user
print(settings)
print(defaults)
Wynikzapisany wynik, możesz go sprawdzić
{'theme': 'dark', 'lang': 'en', 'sound': False}
{'theme': 'dark', 'lang': 'pl', 'sound': True}
Pułapka: update() zwraca None
Python
stats = {"exp": 100}
result = stats.update(exp=150)

print(result)
print(stats)
Wynikzapisany wynik, możesz go sprawdzić
None
{'exp': 150}

Dobre praktyki

#
  • Nie przypisuj wyniku metody: d = d.update(...) zamieni słownik na None. Wywołuj update() jako osobną instrukcję.
  • Gdy oryginał ma zostać bez zmian, utwórz nowy słownik przez a | b albo {**a, **b}.
  • Scalanie jest płytkie: zagnieżdżony słownik z prawej strony zastępuje cały zagnieżdżony słownik z lewej, zamiast łączyć się z nim.

Powiązane hasła

#

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