深浅拷贝详解:Python示例及区别 | 代码演示
深拷贝和浅拷贝是在编程中常用的概念,用于描述复制对象时的不同方式。\n\n浅拷贝是指只复制对象的引用,而不复制对象本身。也就是说,新对象和原对象共享同一块内存空间,修改其中一个对象会影响到另一个对象。浅拷贝通常是通过简单的赋值操作完成的。\n\n深拷贝是指复制对象的所有值,包括其内部的子对象。新对象和原对象拥有独立的内存空间,修改其中一个对象不会影响到另一个对象。深拷贝通常需要递归地复制对象的所有子对象。\n\n下面是一个使用Python语言进行深拷贝和浅拷贝的示例:\n\npython\nimport copy\n\n# 创建一个列表对象\noriginal_list = [1, 2, [3, 4]]\n\n# 浅拷贝\nshallow_copy = copy.copy(original_list)\n# 修改原始列表的第一个元素\noriginal_list[0] = 5\n# 修改原始列表的子列表的第二个元素\noriginal_list[2][1] = 6\n\nprint(original_list) # 输出: [5, 2, [3, 6]]\nprint(shallow_copy) # 输出: [1, 2, [3, 6]]\n\n# 深拷贝\ndeep_copy = copy.deepcopy(original_list)\n# 修改原始列表的第一个元素\noriginal_list[0] = 7\n# 修改原始列表的子列表的第一个元素\noriginal_list[2][0] = 8\n\nprint(original_list) # 输出: [7, 2, [8, 6]]\nprint(deep_copy) # 输出: [5, 2, [3, 6]]\n\n\n从上面的示例可以看出,浅拷贝只复制了原始列表的引用,修改原始列表的元素会影响到浅拷贝后的对象。而深拷贝则复制了原始列表的所有值,修改原始列表的元素不会影响到深拷贝后的对象。
原文地址: https://www.cveoy.top/t/topic/qciN 著作权归作者所有。请勿转载和采集!