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
- ejemplos defaultdict
– Ejempos usando
defaultdict
de la documentation de la biblioteca estándard. - La evolución de los diccionarios por defecto en Python
– Discusión de James Tauber’s de cómo
defaultdict
se relaciona a otras maneras de inicializar diccionarios.