関数list.copyの使い方の例

関数の機能:リストの浅いコピーを作成する

例1 : 整数が要素のリストのコピー

>>> lst = [1, 2, 3]
>>> lstCpy = lst.copy()
>>> lstCpy
[1, 2, 3]
copy関数によりlstCpyというリストが新たに生成されました。
下記のように、lstCpyの要素を変更してもlstは変化しません。
>>> lstCpy[0] = 15
>>> lstCpy
[15, 2, 3]
>>> lst
[1, 2, 3]

例2 : リストが要素のリストのコピー

>>> lst = [[2,3,4],[7,8,9]]
>>> lstCpy = lst.copy()
>>> lstCpy
[[2, 3, 4], [7, 8, 9]]
コピー対象のリストの要素が、リストのような変更可能(mutable)なオブジェクトの場合、コピー先のリストの要素のリストはコピー元のリストの要素のリストと同一のオブジェクトとなります。
>>> lst[0] is lstCpy[0]
True
なので、リストの要素のリストを変更すると、コピー元とコピー先の要素がどちらも変更されます。
>>> lstCpy[0][0] = 100
>>> lstCpy
[[100, 3, 4], [7, 8, 9]]
>>> lst
[[100, 3, 4], [7, 8, 9]]