Pythonには、オブジェクトをコピーするための2つの主要な方法があります: copydeepcopyです。これらは、オブジェクトの種類(ミュータブルまたはイミュータブル)によって異なる結果をもたらします。

copyとは

copyは、新しい複合オブジェクトを作成し、可能な限り元のオブジェクトに存在するオブジェクトへの参照を挿入します。これは「浅いコピー」とも呼ばれます。

import copy
original_list = [1, 2, [3, 4]]
shallow_copied_list = copy.copy(original_list)

この例では、original_listの浅いコピーを作成しています。copyを使用すると、新しいオブジェクトが作成されますが、その値は元のオブジェクトからコピーされます。したがって、一方の値を変更しても、もう一方には影響しません。

deepcopyとは

一方、deepcopyは新しい複合オブジェクトを作成し、再帰的に元のオブジェクトに存在するオブジェクトのコピーを挿入します。これは「深いコピー」とも呼ばれます。

import copy
original_list = [1, 2, [3, 4]]
deep_copied_list = copy.deepcopy(original_list)

この例では、original_listの深いコピーを作成しています。deepcopyを使用すると、新しいオブジェクトが作成され、その値は元のオブジェクトから完全にコピーされます。したがって、一方の値を変更しても、もう一方には影響しません。

まとめ

Pythonのcopydeepcopyは、オブジェクトのコピーを作成するための強力なツールです。しかし、それらは異なる方法で動作し、異なる結果をもたらします。どちらを使用するかは、特定の問題に最適な解決策によります。.

投稿者 admin

コメントを残す

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