Why does updating one dictionary object affect other?
Solution 1:
>>> d[0] = template
>>> d[1] = template
These two statements made both d[0]
and d[1]
refer to the same object, template
. Now you can access the dictionary with three names, template
, d[0]
and d[1]
. So doing:
d[0]['mean'] = 1
modifies a dictionary object, which can be referred with the other names mentioned above.
To get this working as you expected, you can create a copy of the template
object, like this
>>> d[0] = template.copy()
>>> d[1] = template.copy()
Now, d[0]
and d[1]
refer to two different dictionary objects.