在Python 中複製物件:綜合指南
建立物件的副本是Python 程式設計中的一項基本任務,尤其是在處理複雜資料時結構。本文深入研究了 Python 中物件複製的複雜性,特別關注創建不受原始物件變更影響的獨立物件。
淺複製和深複製
在Python中,複製物件有兩種主要方法:淺複製和深複製。淺複製會建立一個新對象,該物件引用與原始物件相同的不可變欄位(例如整數、字串),但建立可變欄位(例如列表、字典)的新副本。
例如,請考慮以下內容程式碼片段:
<code class="python">original_list = [1, 2, 3] new_list = original_list[:] # Shallow copy</code>
雖然new_list 和Original_list 看起來是單獨的對象,但對一個清單所做的任何更改都會反映在另一個列表中,因為它們都引用相同的基礎資料。
建立完全獨立的物件
要建立真正獨立的對象,我們必須訴諸深度複製。這涉及創建每個字段的新副本,包括嵌套的可變結構。 Python 的 copy.deepcopy() 函數提供了此功能。
讓我們修改之前的範例:
<code class="python">import copy original_list = [1, 2, [4, 5]] new_list = copy.deepcopy(original_list)</code>
現在,如果我們對new_list 進行更改,則不會影響original_list:
<code class="python">new_list[2].append(6) print(original_list) # Output: [1, 2, [4, 5]] print(new_list) # Output: [1, 2, [4, 5, 6]]</code>
結論
透過利用copy.deepcopy() 函數,程式設計師可以建立完全獨立的物件副本,確保對一個物件所做的變更不會影響另一個物件。了解淺複製和深複製之間的區別對於 Python 中有效的物件操作至關重要。
以上是如何在 Python 中建立物件的真正獨立副本?的詳細內容。更多資訊請關注PHP中文網其他相關文章!