defaultdictはPythonの標準ライブラリに含まれる辞書クラスのサブクラスで、存在しないキーにアクセスされた場合にデフォルト値を返すことができます。これはdict.get()メソッドを使用することに比べて、非常に便利な場合があります。

例えば、次のような辞書があるとします。

my_dict = {'apple': 1, 'banana': 2, 'cherry': 3}

この辞書に存在しないキーにアクセスすると、KeyErrorが発生します。

>>> my_dict['orange']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'orange'

defaultdictを使用すると、存在しないキーにアクセスした場合にデフォルト値を返すことができます。例えば、整数をデフォルト値とするdefaultdictを作成するには、次のようにします。

from collections import defaultdict
my_default_dict = defaultdict(int)

このdefaultdictに存在しないキーにアクセスすると、0が返されます。

>>> my_default_dict['orange']
0

defaultdictは、他のデータ型に対しても同じように動作します。例えば、次のように文字列をデフォルト値とするdefaultdictを作成することができます。

my_string_dict = defaultdict(str)

このdefaultdictに存在しないキーにアクセスすると、空の文字列が返されます。

>>> my_string_dict['orange']
''

defaultdictは、特定のキーに対するデフォルト値を設定することもできます。例えば、次のように、存在しないキーにアクセスすると'N/A'が返されるdefaultdictを作成することができます。

my_na_dict = defaultdict(lambda: 'N/A')

このdefaultdictに存在しないキーにアクセスすると、'N/A'が返されます。

>>> my_na_dict['orange']
'N/A'

defaultdictは、キーにアクセスするだけでなく、新しいキーと値のペアを追加することもできます。

>>> my_default_dict['apple'] += 1
>>> my_default_dict
defaultdict(<class 'int'>, {'apple': 2})

このように、defaultdictは、辞書の操作をより便利に行うための便利なツールです。