pytyhon 深拷贝浅拷贝
时间: 2023-10-17 09:15:54 浏览: 62
Python3实现基数排序(源代码)
在 Python 中,深拷贝和浅拷贝都是用于复制对象的方法。当我们需要复制对象时,可以使用深拷贝或浅拷贝,具体选择哪种方法取决于我们的需求。
浅拷贝是指复制对象的引用,而不是对象本身。这意味着当我们修改副本时,原始对象也会受到影响。我们可以使用 copy 模块中的 copy() 方法进行浅拷贝。
以下是一个浅拷贝的例子:
```
import copy
list1 = [1, 2, [3, 4]]
list2 = copy.copy(list1)
print(list1) # [1, 2, [3, 4]]
print(list2) # [1, 2, [3, 4]]
list2[0] = 5
list2[2][0] = 6
print(list1) # [1, 2, [6, 4]]
print(list2) # [5, 2, [6, 4]]
```
在上面的例子中,我们使用 copy() 方法创建了一个浅拷贝。当我们修改副本 list2 时,原始对象 list1 也受到了影响。
深拷贝是指复制对象及其所有子对象,而不是对象本身。这意味着当我们修改副本时,原始对象不会受到影响。我们可以使用 copy 模块中的 deepcopy() 方法进行深拷贝。
以下是一个深拷贝的例子:
```
import copy
list1 = [1, 2, [3, 4]]
list2 = copy.deepcopy(list1)
print(list1) # [1, 2, [3, 4]]
print(list2) # [1, 2, [3, 4]]
list2[0] = 5
list2[2][0] = 6
print(list1) # [1, 2, [3, 4]]
print(list2) # [5, 2, [6, 4]]
```
在上面的例子中,我们使用 deepcopy() 方法创建了一个深拷贝。当我们修改副本 list2 时,原始对象 list1 没有受到影响。
阅读全文