Ce face dict.update() și operatorul |
update() copiază în dicționar toate perechile primite: dintr-un alt dicționar, dintr-o listă de perechi sau din argumente cu nume. Cheile existente primesc valorile noi.
Din Python 3.9, d1 | d2 creează un dicționar nou din cele două (valorile din d2 câștigă), iar d1 |= d2 este echivalent cu d1.update(d2). Înainte de 3.9 se folosea {**d1, **d2}.
Parametri
| Parametru | Descriere |
|---|---|
other, **kwargs |
Dicționar, listă de perechi și/sau argumente cu nume. |
Ce returnează
None (update); dicționarul nou (|).
Exemple
Exemplul 1: Setări implicite suprascrise de utilizator
implicite = {"limba": "en", "tema": "luminoasă", "font": 12}
utilizator = {"limba": "ro", "font": 14}
setari = implicite.copy()
setari.update(utilizator)
print(setari)
print(implicite | utilizator)
print({**implicite, **utilizator} == implicite | utilizator)
Rezultat
{'limba': 'ro', 'tema': 'luminoasă', 'font': 14}
{'limba': 'ro', 'tema': 'luminoasă', 'font': 14}
True
Exemplul 2: Alte forme ale lui update()
d = {"a": 1}
d.update([("b", 2), ("c", 3)])
d.update(d=4, a=10)
print(d)
Rezultat
{'a': 10, 'b': 2, 'c': 3, 'd': 4}
Greșeli frecvente
- Scrii
d = d.update(...)și dicționarul devineNone. - Folosești
d1 | d2pe Python 3.8 sau mai vechi și primeștiTypeError: unsupported operand type(s) for |.
Comenzi înrudite
dict (dicționare): Dicționarul păstrează perechi cheie: valoare și găsește rapid valoarea după cheie.dict.setdefault(): Returnează valoarea unei chei; dacă cheia lipsește, o adaugă mai întâi cu o valoare implicită.collections.ChainMap: Grupează mai multe dicționare într-o singură vedere: o cheie este căutată pe rând în fiecare.