defaultdict - Le Chiavi Mancanti Ritornano Un Valore Predefinito

Scopo: defaultdict consente al chiamante di specificare in anticipo il valore predefinito, quando il contenitore viene inizializzato.

Il tipo dict standard include il metodo setdefault() per recuperare un valore e impostarne uno predefinito se detto valore non esiste. Di contro, defaultdict consente al chiamante di specificare in anticipo il valore predefinito, quando il contenitore viene inizializzato .

# collections_defaultdict.py

import collections


def default_factory():
    return 'valore predefinito'

d = collections.defaultdict(default_factory, foo='bar')
print('d:', d)
print('foo =>', d['foo'])
print('bar =>', d['bar'])

La cosa funziona bene fintanto che è appropriato che tutte le chiavi usino lo stesso valore predefinito. Può essere particolarmente utile se il valore predefinito è un tipo usato per aggregare od accumulare valori, tipo list, set, o anche int. La documentazione della libreria standard comprende diversi esempi per l'uso di defaultdict in questo modo.

$ python3 collections_defaultdict.py

d: defaultdict(<function default_factory at 0x7faa532188c8>, {'foo': 'bar'})
foo => bar
bar => valore predefinito

Vedere anche:

defaultdict
La documentazione della libreria standard per questo modulo
defaultdict examples
Esempio dell'uso di defaultdict dalla documentazione della libreria standard
Evolution of Default Dictionaries in Python
Discussione sul blog di James Tauber di come defaultdict riporti diversi mezzi di inizializzazione di dizionari