ディープコピーとシャローコピー
Python では、オブジェクトへの代入は実際にはオブジェクトの参照です。オブジェクトを作成して別の変数に代入するとき、Python はこのオブジェクトをコピーするのではなく、その参照だけをコピーします。これをシャローコピーと呼びます。
Python では、代入操作を行うときに2つの変数が互いに影響しないようにするには、copy モジュールの deepcopy メソッドを使用できます。これをディープコピーと呼びます。
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