defaultdict — Llaves faltantes devuelve un valor predeterminado

El diccionario estándar incluye el método setdefault() para recuperar un valor y establecer un valor predeterminado si el valor no lo existe. Por contraste, defaultdict permite al que llama especificar el valor predeterminado por adelantado cuando el contenedor se inicializa.

collections_defaultdict.py
import collections


def default_factory():
    return 'default value'


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

Este método funciona bien siempre que sea apropiado para todas las claves tener el mismo valor predeterminado. Puede ser especialmente útil si el valor predeterminado es unntipo utilizado para agregar o acumular valores, como list, set, o incluso int. La documentación de la biblioteca estándard incluye varios ejemplos en los cuales defaultdict se usa de esta manera.

$ python3 collections_defaultdict.py

d: defaultdict(<function default_factory at 0x101341950>,
{'foo': 'bar'})
foo => bar
bar => default value

Ver también