Pythonでリストをコピーする方法について説明します。Pythonでは、リストをコピーするためのいくつかの方法がありますが、それぞれが異なる状況で最適です。
浅いコピー
浅いコピーは、リストの最上位レベルだけをコピーし、ネストされたリストやオブジェクト(例えば、リスト内のリスト)は参照としてコピーします。Pythonでは、以下の方法で浅いコピーを作成できます。
- スライス
[:]
の利用 list()
コンストラクタの利用copy.copy()
の利用
import copy
original_list = [1, 2, 3, 4, 5]
copied_list = original_list[:] # スライスを利用
copied_list = list(original_list) # list()を利用
copied_list = copy.copy(original_list) # copy.copy()を利用
深いコピー
深いコピーは、元のリストの完全な複製を作成します。ネストされたすべてのリストやオブジェクトもコピーされ、元のリストと完全に独立します。Pythonでは、copy.deepcopy()
を使用して深いコピーを作成できます。
import copy
original_list = [1, [2, 3], 4]
copied_list = copy.deepcopy(original_list) # 深いコピー
以上がPythonでリストをコピーする主な方法です。どの方法が最適かは、具体的な状況や要件によります。