Механизм создания новых объектов при изменении данных в Python работает следующим образом:
Все типы объектов в Python делятся на изменяемые (mutable) и неизменяемые (immutable). 4
Для неизменяемых объектов (например, строки, числа) при изменении создаётся новый экземпляр. 14 Значение, хранящееся в объекте неизменяемого типа, невозможно изменить никакими способами. 4 Единственный способ получить объект такого типа с другим значением — создать новый объект с нужным значением. 4
Для изменяемых объектов (например, списки) изменение происходит без создания нового объекта. 4 Изменения объекта возможны за счёт вызова его методов или применения к нему операторов. 4
Также Python оптимизирует занимаемую память: если ссылок на объект много, то чтобы не создавать в памяти много одинаковых объектов, создаётся один, и все ссылки указывают на него. 3 Если ссылок мало, то Python создаст новые объекты в памяти. 3