dict.setdefault() în Python

Returnează valoarea unei chei; dacă cheia lipsește, o adaugă mai întâi cu o valoare implicită.

Sintaxă
dictionar.setdefault(cheie, implicit=None)

Ce face dict.setdefault()

setdefault(cheie, implicit) verifică dacă cheia există. Dacă da, returnează valoarea ei. Dacă nu, setează d[cheie] = implicit și returnează implicit. Este util pentru gruparea datelor în liste.

Pentru același scop, collections.defaultdict este adesea mai clar și mai rapid.

Parametri

Parametru Descriere
cheie Cheia căutată.
implicit Valoarea adăugată dacă cheia lipsește.

Ce returnează

Valoarea cheii (existentă sau nou adăugată).

Exemple

Exemplul 1: Gruparea pe categorii

produse = [("fructe", "mere"), ("lactate", "lapte"), ("fructe", "pere")]
pe_categorii = {}
for categorie, produs in produse:
    pe_categorii.setdefault(categorie, []).append(produs)
print(pe_categorii)

setari = {"limba": "ro"}
print(setari.setdefault("limba", "en"), setari.setdefault("tema", "luminoasă"))
print(setari)

Rezultat

{'fructe': ['mere', 'pere'], 'lactate': ['lapte']}
ro luminoasă
{'limba': 'ro', 'tema': 'luminoasă'}

Greșeli frecvente

  • Folosești setdefault doar ca să citești o valoare. Metoda modifică dicționarul când cheia lipsește; pentru simpla citire folosește get().

Comenzi înrudite

  • collections.defaultdict: Un dicționar care creează automat o valoare implicită pentru cheile lipsă.
  • dict.get(): Citește valoarea unei chei; dacă cheia lipsește, returnează o valoare implicită în loc de eroare.
  • dict.update() și operatorul |: Adaugă sau suprascrie mai multe chei deodată, dintr-un alt dicționar sau din perechi.