これが defaultdict の仕組みです。
from collections import defaultdict
a=defaultdict(lambda:3)
a[200]==3 #True
defaultdict
単純な定数値ではなく、引数のない関数を取るように設計されたのはなぜですか?
これが別の定義です。
class dd(dict):
def __init__(self,x):
self._default=x
def __getitem__(self,key):
if key in self: return dict.__getitem__(self, key)
else:
self[key]=self._default
return self[key]
となることによって
a=dd(3)
a[200]==3 #True