Is there some reason not to use `collections.defaultdict`?