Почему переменные в Python себя так ведут?

Почему даже при создании нового объекта и изменении оного, первый тоже изменяется?
60d6de3c6e148018551252.png
  • Вопрос задан
  • 134 просмотра
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Потому что список новый вы создали, а словарь в нём остался тот же.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@Qutray
Начинающий разработчик на python/c#
Дело в том что переменная это просто ссылка на объект который лежит в кеше.

В вашем коде и а и b имеют ссылку на один отдел памяти , в котором лежит ваш список
Тем самым если вы изменяете a, измениться объект на который она ссылается, а поскольку b также ссылается на этот объект, то при выводе b у вас появиться уже изменённый объект.

Чтобы исправить эту ситуацию нужно использовать либо метод copy или срезы.
Ответ написан
dimonchik2013
@dimonchik2013
non progredi est regredi
b = a[:]
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы