Pythonでのディープコピーメソッドの利用法

Pythonでは、copy.deepcopy()関数を使ってディープコピーすることができます。

コピーを作成する際に、copy.deepcopy() 関数を利用すれば、入れ子になったリスト、辞書、集合など、すべての入れ子になったオブジェクトを再帰的にコピーできます。

以下に、copy.deepcopy() 関数を使用してディープコピーを行うサンプルコードを示します。

import copy

# 定义一个嵌套的列表
original_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print("原始列表:", original_list)

# 使用深度拷贝进行拷贝
copied_list = copy.deepcopy(original_list)
print("拷贝后的列表:", copied_list)

# 修改原始列表的值
original_list[0][0] = 10
print("修改后的原始列表:", original_list)
print("拷贝后的列表不受影响:", copied_list)

上の例では、まず入れ子リストのoriginal_listを定義しました。次に、copy.deepcopy()関数を使用して、元リストのコピーをcopied_listにディープコピーしました。次に、元リストの値の1つを変更しました。そうすると、コピー後のリストには影響がなく、元の一部の値のままです。

効率面では、深度コピーは浅いコピーよりも低くなる場合があるので注意。すべての階層のオブジェクトを再帰的に参照・コピーするためだ。場合によっては、コピー対象が1階層のみであれば、copy.copy()関数による浅いコピーが使用できる。

bannerAds