Я просто пытался использовать defaultdict, и я не могу понять, почему изменение defaultdict (d [1] = 2) вызывает изменение в списке v, хотя добавление было выполнено до изменения в стоимость. пожалуйста, помогите ..defaultdict changes получает отражение в списке
>>> d=defaultdict(int)
>>> d[1]=1
>>> d[2]=3
>>> v=[]
>>> v.append(d)
>>> v.append(d)
>>> v
[defaultdict(<type 'int'>, {1: 1, 2: 3}), defaultdict(<type 'int'>, {1: 1, 2: 3})]
>>> d[1]=2
>>> v
[defaultdict(<type 'int'>, {1: 2, 2: 3}), defaultdict(<type 'int'>, {1: 2, 2: 3})]
>>
Поскольку они являются тем же объектом. –
Поскольку 'd' является _reference_, сохраняется дважды в вашем списке. – bereal
Как изменить код, чтобы он не ссылался. –