用python代码举个深拷贝与浅拷贝区别的例子
时间: 2024-04-16 22:04:53 浏览: 66
详解Python核心编程中的浅拷贝与深拷贝
下面是一个例子来说明深拷贝和浅拷贝的区别:
```python
# 浅拷贝示例
a = [1, 2, [3, 4]]
b = list(a)
a[2][0] = 5
print(a) # 输出 [1, 2, [5, 4]]
print(b) # 输出 [1, 2, [5, 4]]
# 深拷贝示例
import copy
a = [1, 2, [3, 4]]
b = copy.deepcopy(a)
a[2][0] = 5
print(a) # 输出 [1, 2, [5, 4]]
print(b) # 输出 [1, 2, [3, 4]]
```
在这个例子中,我们定义了一个包含整数和列表的列表。我们首先使用浅拷贝创建一个新的列表 `b`,然后将 `a` 中第三个元素中的第一个元素更改为 5。由于浅拷贝只复制了列表的引用,因此更改 `a` 中的元素也更改了 `b` 中的元素。因此,当我们打印 `a` 和 `b` 的值时,它们都反映了这个更改。
然而,在深拷贝的情况下,我们使用 `copy` 模块的 `deepcopy` 方法来创建 `b`。这将创建一个完全独立的副本,其中包含与原始列表相同的值,而不是仅包含引用。因此,在我们更改 `a` 中的元素时,`b` 中的元素保持不变,因为它们是独立的。
阅读全文