Dict dentro de defaultdict que se comparte entre claves

Tengo un diccionario dentro de un defaultdict. Noté que el diccionario se comparte entre claves y, por lo tanto, toma los valores de la última escritura. ¿Cómo puedo aislar esos diccionarios?

>>> from collections import defaultdict
>>> defaults = [('a', 1), ('b', {})]
>>> dd = defaultdict(lambda: dict(defaults))
>>> dd[0]
{'a': 1, 'b': {}}
>>> dd[1]
{'a': 1, 'b': {}}
>>> dd[0]['b']['k'] = 'v'
>>> dd
defaultdict(<function <lambda> at 0x7f4b3688b398>, {0: {'a': 1, 'b': {'k': 'v'}}, 1:{'a': 1, 'b': {'k': 'v'}}})
>>> dd[1]['b']['k'] = 'v2'
>>> dd
defaultdict(<function <lambda> at 0x7f4b3688b398>, {0: {'a': 1, 'b': {'k': 'v2'}}, 1: {'a': 1, 'b': {'k': 'v2'}}})

Darse cuenta dev se estableció env2 para ambos diccionarios. ¿Porqué es eso? y cómo cambiar este comportamiento sin mucha sobrecarga de rendimiento?

Respuestas a la pregunta(2)

Su respuesta a la pregunta