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
Przykład
#profile = {"name": "Ania", "level": 3, "theme": "light"}
profile.update({"level": 4, "streak": 12})
print(profile)
profile.update(theme="dark")
print(profile)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
#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
#defaults = {"theme": "dark", "lang": "pl", "sound": True}
user = {"lang": "en", "sound": False}
settings = defaults | user
print(settings)
print(defaults)stats = {"exp": 100}
result = stats.update(exp=150)
print(result)
print(stats)Dobre praktyki
#- Nie przypisuj wyniku metody:
d = d.update(...)zamieni słownik naNone. Wywołujupdate()jako osobną instrukcję. - Gdy oryginał ma zostać bez zmian, utwórz nowy słownik przez
a | balbo{**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
#- dict.setdefault()Zwraca wartość klucza, a gdy go brakuje, najpierw zapisuje w słowniku wartość domyślną.
- dict.pop()Usuwa klucz ze słownika i zwraca jego wartość, opcjonalnie z wartością zastępczą.
- dict()Tworzy słownik z par klucz–wartość lub argumentów nazwanych.
- Wyrażenia słownikoweZwięzły sposób budowania nowego słownika przez przekształcenie lub filtrowanie innej kolekcji.
- list.extend()Dodaje na koniec listy wszystkie elementy innej kolekcji.
Widzisz błąd albo brakuje przykładu? Napisz do nas.