Python 深复制:完全复制对象及其子对象
深复制指的是在复制对象时,完全复制对象及其所有嵌套的子对象,而不是只复制对象的引用。这意味着如果修改复制后的对象,不会影响原始对象或其任何子对象。
举个例子,假设有一个包含嵌套列表的字典对象:
original = {'list': [1, 2, [3, 4]], 'string': 'hello'}
如果我们只是简单地将这个字典对象赋值给另一个变量:
copy = original
那么copy和original将引用同一个对象。如果我们修改copy中的列表,原始对象original也会受到影响:
copy['list'][2][0] = 5
print(original) # {'list': [1, 2, [5, 4]], 'string': 'hello'}
为了避免这种情况,我们需要进行深复制来完全复制对象及其所有子对象:
import copy
deep_copy = copy.deepcopy(original)
deep_copy['list'][2][0] = 6
print(original) # {'list': [1, 2, [5, 4]], 'string': 'hello'}
print(deep_copy) # {'list': [1, 2, [6, 4]], 'string': 'hello'}
这样,我们就可以修改deep_copy中的列表而不会影响原始对象original。
原文地址: https://www.cveoy.top/t/topic/lV2T 著作权归作者所有。请勿转载和采集!