在Python中,深拷貝和淺拷貝是兩種不同的拷貝對象的方式。
1、淺拷貝(Shallow Copy):
淺拷貝是一種創建一個新的對象,然后將原始對象的元素復制到新對象中。但是,如果原始對象中的元素是可變對象(如列表、字典等),則新對象中的元素仍然是對原始對象中元素的引用。這意味著對新對象的修改也會影響原始對象。
示例:
```python
import copy
original_list = [1, [2, 3], 4]
new_list = copy.copy(original_list)
new_list[1].append(5)
print(original_list) # 輸出: [1, [2, 3, 5], 4]
```
2、深拷貝(Deep Copy):
深拷貝是一種創建一個完全獨立于原始對象的新對象,并且原始對象和新對象的元素都是獨立的,互相不影響。深拷貝會遞歸地復制原始對象中的所有子對象。
示例:
```python
import copy
original_list = [1, [2, 3], 4]
new_list = copy.deepcopy(original_list)
new_list[1].append(5)
print(original_list) # 輸出: [1, [2, 3], 4]
```
因此,深拷貝創建了原始對象的完全獨立副本,而淺拷貝只復制了原始對象的引用,對原始對象和新對象之間的影響不同。