Автор оригинала: Doug Hellmann.
Стандартный словарь включает метод setdefault ()
для получения значения и установки значения по умолчанию, если значение не существует. В отличие от этого, defaultdict
позволяет вызывающей стороне указать значение по умолчанию заранее при инициализации контейнера.
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'])
Этот метод работает хорошо, если все ключи имеют одинаковое значение по умолчанию. Это может быть особенно полезно, если по умолчанию используется тип, используемый для агрегирования или накопления значений, такой как list
, set
или даже int
. Документация стандартной библиотеки включает несколько примеров, в которых defaultdict
используется таким образом.
$ python3 collections_defaultdict.py d: defaultdict(, {'foo': 'bar'}) foo => bar bar => default value
Смотрите также
- примеры defaultdict – примеры использования
defaultdict
из стандартной библиотеки документация. - Эволюция словарей по умолчанию в Python – обсуждение Джеймсом Таубером связи
defaultdict
к другим средствам инициализации словарей.