5.3.2 defaultdict objects

defaultdict(

[default_factory[, ...]])

Returns a new dictionary-like object. defaultdict is a subclass
of the builtin dict class. It overrides one method and adds one
writable instance variable. The remaining functionality is the same as
for the dict class and is not documented here.

The first argument provides the initial value for the
default_factory attribute; it defaults to None.
All remaining arguments are treated the same as if they were
passed to the dict constructor, including keyword arguments.

New in version 2.5.

defaultdict objects support the following method in addition to
the standard dict operations:

__missing__(

key)

If the default_factory attribute is None, this raises
an KeyError exception with the key as argument.

If default_factory is not None, it is called without
arguments to provide a default value for the given key, this
value is inserted in the dictionary for the key, and returned.

If calling default_factory raises an exception this exception
is propagated unchanged.

This method is called by the __getitem__ method of the
dict class when the requested key is not found; whatever it
returns or raises is then returned or raised by __getitem__.

defaultdict objects support the following instance variable:

default_factory

This attribute is used by the __missing__ method; it is initialized
from the first argument to the constructor, if present, or to None,
if absent.