首頁 >後端開發 >Python教學 >Python 中的淺複製和深複製有何不同?

Python 中的淺複製和深複製有何不同?

Susan Sarandon
Susan Sarandon原創
2024-11-07 05:22:03686瀏覽

How do Shallow and Deep Copying Differ in Python?

在 Python 中複製物件

建立物件的獨立副本是程式設計中常見的任務。在Python中,複製物件主要有兩種方式:淺複製和深複製。

淺複製

Python預設的複製機制是淺複製。這意味著在建立一個新物件時會引用與原始物件相同的欄位。對新物件的欄位所做的任何變更也將反映在原始物件中。

深度複製

另一方面,深度複製會建立一個新物件具有與原始物件不同的欄位副本的物件。這意味著對新物件的欄位進行的任何更改都不會影響原始物件。

要在Python中取得物件的完全深層獨立副本,您可以使用副本.deepcopy() 函數。以下是一個範例:

<code class="python">import copy

# Original object
obj = {
    "name": "Alice",
    "age": 20
}

# Create a shallow copy
shallow_copy = obj

# Create a deep copy
deep_copy = copy.deepcopy(obj)

# Modify the shallow copy
shallow_copy["name"] = "Bob"

# Print the original and deep copy
print(obj)  # Output: {'name': 'Bob', 'age': 20}
print(deep_copy)  # Output: {'name': 'Alice', 'age': 20}</code>

如您所見,deep_copy 保留了物件的原始值,而shallow_copy 則受到對原始物件所做的變更的影響。

以上是Python 中的淺複製和深複製有何不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn