??copy() 和 deepcopy() 都是 Python 中用于复制对象的方法,但它们在复制过程中的行为不同。
??copy()
是浅拷贝,它创建一个新的对象,但是只复制了对象本身及其顶层元素的引用,而不是元素的内容。
??deepcopy()
是深拷贝,它创建一个全新的对象,递归地复制原始对象及其所有嵌套的对象。这意味着它会复制对象本身以及对象中的所有元素,包括嵌套的列表、字典等。
??不论对象的层级有多深,deepcopy() 都会创建一个完全独立的副本,即使对其中一个对象进行修改也不会影响到另一个对象。
使用方法示例:
import copy
# 浅拷贝示例
original_list = [1, 2, [3, 4]]
copied_list = copy.copy(original_list)
original_list[2][0] = 'changed'
print(original_list) # 输出: [1, 2, ['changed', 4]]
print(copied_list) # 输出: [1, 2, ['changed', 4]]
# 深拷贝示例
original_list = [1, 2, [3, 4]]
deep_copied_list = copy.deepcopy(original_list)
original_list[2][0] = 'changed'
print(original_list) # 输出: [1, 2, ['changed', 4]]
print(deep_copied_list) # 输出: [1, 2, [3, 4]]
??在示例中: