リストの代入で変更が影響されない8つの方法

代入元のリストから代入先のリストにデータを渡した後に、代入先のリストを変更すると代入元も変更されてしまいます。
その変更が影響されないようにする8つの方法を紹介します。

変更が影響されるプログラム

まず、変更が影響されるプログラミングコードとColaboratoryで実行した様子を紹介します。

※”\n”と”¥n”は改行の意味です。

①は代入元のdata1=[1,2,3,4,5]のデータをdata2に代入しています。
②は代入先のdata2の0番目の要素を99に書き換えてます
Colaboratoryの実行結果を見てわかるようにdata1の0番目の要素も99に変更されています

変更が影響されないようにする8つの方法

1.list()

list()を使って変更が影響されないようにする方法。

使い方
代入先=list(代入元のリスト)

2.copy()

copy()を使って変更が影響されないようにする方法。

使い方
代入先=代入元のリスト.copy()

3.import copyのcopy.copy()

copyモジュールのcopy.copy()を使って、変更が影響されないようにする方法。

使い方
代入先=copy.copy(代入元のリスト)

4.import copyのcopy.deepcopy()

copyモジュールのcopy.deepcopy()を使って、変更が影響されないようにする方法。

使い方
代入先=copy.deepcopy(代入元のリスト)

5.リスト名[:]

リスト名[:]を使って変更が影響されないようにする方法。

使い方
代入先=代入元のリスト[:]

[:]については「リストを使ったPythonのスライスをColaboratoryで実行」の投稿で紹介しています。

6.for文+.insert()

for文とinsert()を使って変更が影響されないようにする方法。
insertはデータを挿入するときに使う関数になります。
insertの使い方は代入先.insert(挿入場所,挿入データ)のようにして使います。

7.for文+append()

for文とappend()を使って変更が影響されないようにする方法。
appendはデータを追加するときに使う関数になります。
appendの使い方は代入先.append(追加するデータ)のようにして使います。

8.for文+=[]

for文と+=[]を使って変更が影響されないようにする方法。
代入先+=[代入するデータ]のようにして使います。