Tag: setdefault

  • Python e il metodo setdefault

    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