\

Pythonでリストをコピーする方法について説明します。リストはPythonの基本的なデータ構造で、そのコピー方法はいくつかあります。

1次元リストのコピー

1次元リストのコピーは比較的簡単です。以下に示すように、copy.deepcopy()、スライス、list()などを使用してコピーを作成できます。

import copy

list_1 = [0,1,2]
list_2 = copy.deepcopy(list_1) # deepcopy()を使う
list_3 = list_1[:] # 元のリストをスライスする
list_4 = list(list_1) # list()を使う

list_2[0] = 1000
list_3[0] = 2000
list_4[0] = 3000

print(list_1) # [0, 1, 2]
print(list_2) # [1000, 1, 2]
print(list_3) # [2000, 1, 2]
print(list_4) # [3000, 1, 2]

2次元リストのコピー

2次元以上のリストをコピーする場合、copy.deepcopy()を使用する必要があります。スライスやlist()ではうまくいきません。

import copy

list_1 = [[0,1,2], [3,4,5]]
list_2 = copy.deepcopy(list_1)

list_2[0][0] = 1000

print(list_1) # [[0, 1, 2], [3, 4, 5]]
print(list_2) # [[1000, 1, 2], [3, 4, 5]]

注意点

リストを=で代入すると、新しいリストが作成されるのではなく、既存のリストへの新しい参照が作成されます。そのため、一方のリストを変更すると、もう一方も変更されます。

list_1 = [0,1,2,3]
list_2 = list_1

list_2[0] = 1000

print(list_1) # [1000, 1, 2, 3]
print(list_2) # [1000, 1, 2, 3]

この記事がPythonでリストをコピーする方法についての理解に役立つことを願っています。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です