У меня есть словарь a.Проблема с вложенными словарями в Python
a = {1: 'a', 2: 'b'}
И я имел некоторый словарь В с в качестве значения
b = {1: a}
Если я печатаю б, изменить затем распечатать б снова, например:
print(b)
a[1] = 'd'
print(b)
я получаю следующие:
{'a': {1: 'a', 2: 'b'}}
{'a': {1: 'd', 2: 'b'}}
Почему t его случилось? Автоматически обновляется ли файл, если вы установите значение переменной и затем обновите его? Благодарю.
№ Значение в словаре 'b' указывает на переменную' a'. Любое изменение последнего отразится на первом. Если вы хотите, чтобы они были отдельными, просто скопируйте словарь: 'b = {1: a.copy()}' – Alexander
Обратите внимание, что 'a.copy()' является мелкой копией. Мутации для значений 'a.copy()' будут видны через 'a'. – user2357112
Сделайте это. 'print (id (a)); print (id (b ['a'])) 'Посмотрите, что они оба являются одним и тем же объектом? Поэтому, если вы меняете объект через любую ссылку, независимо от того, как вы обращаетесь к этому объекту, он будет изменен. См. Также [это объяснение] (http://foobarnbaz.com/2012/07/08/understanding-python-variables/) –