Python中可以使用copy模块中的copy()方法来实现列表的浅拷贝和深拷贝。
- 浅拷贝:浅拷贝会创建一个新的列表对象,但是其中的元素仍然是原列表中元素的引用。可以使用copy()方法来实现浅拷贝。
import copy # 原列表 original_list = [1, 2, [3, 4], 5] # 浅拷贝 shallow_copy_list = copy.copy(original_list) original_list[2][0] = 6 print(original_list) # [1, 2, [6, 4], 5] print(shallow_copy_list) # [1, 2, [6, 4], 5]
- 深拷贝:深拷贝会创建一个新的列表对象,并且其中的元素也会进行递归地拷贝,不再是原列表中元素的引用。可以使用copy()方法的深拷贝版本deepcopy()来实现深拷贝。
import copy # 原列表 original_list = [1, 2, [3, 4], 5] # 深拷贝 deep_copy_list = copy.deepcopy(original_list) original_list[2][0] = 6 print(original_list) # [1, 2, [6, 4], 5] print(deep_copy_list) # [1, 2, [3, 4], 5]
通过上述代码示例可以看出,浅拷贝只是拷贝了原列表的引用,深拷贝则是完全复制了原列表的值。