Pythonのcopy
メソッドは、オブジェクトのコピーを作成するための便利なツールです。この記事では、copy
メソッドの基本的な使用方法と、浅いコピーと深いコピーの違いについて説明します。
copyメソッドの基本
Pythonのcopy
メソッドは、オブジェクトの浅いコピーを作成します。基本的な構文は次のとおりです。
copied_dictionary = original_dictionary.copy()
このコードは、original_dictionary
の浅いコピーを作成し、それをcopied_dictionary
に割り当てます。
浅いコピーと深いコピー
浅いコピーと深いコピーの違いは、複合オブジェクト(他のオブジェクトを含むオブジェクト、例えばリストやクラスのインスタンス)に対してのみ関連します。
- 浅いコピーは新しい複合オブジェクトを作成し、可能な限り元のオブジェクトに見つかったオブジェクトへの参照をそれに挿入します。
- 深いコピーは新しい複合オブジェクトを作成し、その後、元のオブジェクトに見つかったオブジェクトのコピーを再帰的にそれに挿入します。
実例
以下に、copy
メソッドを使用して値渡しが行われていることを確認するPythonのコードを示します。
list1 = [1, 2, 3]
list2 = list1
list3 = list1.copy()
# list1の1つ目の要素に100を代入する
list1[0] = 100
# それぞれの変数の内容を表示する
print("list1:", list1)
print("list2:", list2)
print("list3:", list3)
実行結果は以下のようになります。
list1: [100, 2, 3]
list2: [100, 2, 3]
list3: [1, 2, 3]
list3
は値渡しのため、list1
の要素の値の変更に影響を受けないことがわかります。
以上がPythonのcopy
メソッドの基本的な使用方法と、浅いコピーと深いコピーの違いについての説明です。これらの知識を活用して、Pythonプログラミングの効率を向上させましょう。