Глубокое и поверхностное копирование
В Python присваивание объекта фактически является ссылкой на объект. Когда вы создаёте объект и присваиваете его другой переменной, Python не копирует объект, а только копирует ссылку на объект, что мы называем поверхностным копированием.
В Python, чтобы две переменные не влияли друг на друга при операциях присваивания, можно использовать метод deepcopy из модуля copy, который называется глубоким копированием.
Функция append()
Когда объект типа list выполняет операцию append, он фактически добавляет ссылку на объект.
id()Функция: возвращает уникальный идентификатор объекта, который можно сравнить с адресом объекта в памяти.
>>>alist = []
>>> num = [2]
>>> alist.append( num )
>>> id( num ) == id( alist[0] )
True
alist.append( copy.deepcopy( num ) )
Оригинальный адрес: https://blog.csdn.net/u010099495/article/details/50276833