赞
踩
赋值、浅拷贝和深拷贝是 Python 中用于创建对象副本的不同方式。它们之间的区别在于复制的程度和对原始对象和副本的影响。
- import copy
-
- original_list = [1, 2, 3]
- new_list = original_list # 赋值操作
- new_list.append(4)
- print(original_list) # 输出:[1, 2, 3, 4]
copy()
函数或切片操作来进行浅拷贝。示例代码如下:- import copy
-
- original_list = [1, 2, [3, 4]]
- new_list = copy.copy(original_list) # 浅拷贝操作
- new_list[2].append(5)
- print(original_list) # 输出:[1, 2, [3, 4, 5]]
copy.deepcopy()
函数来进行深拷贝。示例代码如下:- import copy
- original_list = [1, 2, [3, 4]]
- new_list = copy.deepcopy(original_list) # 深拷贝操作
- new_list[2].append(5)
- print(original_list) # 输出:[1, 2, [3, 4]]
总结起来,赋值只是创建了一个引用,指向同一内存地址的对象;浅拷贝创建了一个新对象,但其中的元素仍然是原始对象的引用;而深拷贝则是创建了一个全新的对象,包括原始对象及其嵌套对象的副本,彼此互不影响。根据对原始对象和副本之间关系的需要,选择适当的复制方式。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。