Note to self (pun intended): questo post rappresenta una sorta di appunto mentale per ricordarmi il funzionamento di setdefault in Python, visto che puntualmente mi trovo ad utilizzarlo.
setdefault è utilizzato sui dizionari (dict) e permette di impostare una chiave di default durante una set. Mi spiego meglio con un esempio:
>>> D
{1: 'leonard', 2: 'sheldon', 3: 'wolowitz', 4: 'rajesh'}
Vediamo come funziona il metodo setdefault:
>>> D.setdefault(1, 'penny')
'leonard'
>>> D
{1: 'leonard', 2: 'sheldon', 3: 'wolowitz', 4: 'rajesh'}
>>> D.setdefault(5, 'penny')
'penny'
>>> D
{1: 'leonard', 2: 'sheldon', 3: 'wolowitz', 4: 'rajesh', 5: 'penny'}
Ovvero, setdefault valuta la chiave passata come primo argomento:
- se è già presente nel dizionario, viene ritornato il valore della chiave presente nel dizionario;
- altrimenti viene aggiunta al dizionario con il valore specificato come argomento.
in termini pythonici:
def setdefault(d, key, val):
if key in d:
return d[key]
else:
d[key] = val