Это будет работать в соответствии с запросом, хотя, вероятно, это не лучшее решение (вам нужно инициализировать его с помощью вызова по умолчанию, а затем не использовать).Возможно, это можно исправить с помощью переопределения других методов.
class NoneDict(collections.defaultdict):
def __setitem__(self, key, value):
super(NoneDict, self).__setitem__(key, key*[None])