d1
и d2
указывают на один и тот же объект в памяти, поэтому изменение значений в d2
также повлияет на d1
.
d1 = {}
d2 = d1
print id(d1) == id(d2)
# out: True
Используйте метод copy из словаря или класс копирования.
d2 = d1.copy()
from copy import copy
d2 = copy(d1)
Если у вас есть изменяемые объекты, хранящиеся в словаре (то есть списки), и вы хотите скопировать их, вам следует использовать функцию deepcopy.
from copy import deepcopy
d2 = deepcopy(d1)