在Python 中複製物件:綜合指南
創建物件的副本是Python 程式設計中的一項基本任務,尤其是在處理複雜資料時結構。本文深入研究了 Python 中物件複製的複雜性,特別關注創建不受原始物件變更影響的獨立物件。
淺複製和深複製
在Python中,複製物件有兩種主要方法:淺複製和深複製。淺複製會建立一個新對象,該物件引用與原始物件相同的不可變欄位(例如整數、字串),但建立可變欄位(例如列表、字典)的新副本。
例如,請考慮以下內容程式碼片段:
original_list = [1, 2, 3]
new_list = original_list[:] # Shallow copy
雖然new_list 和Original_list 看起來是單獨的對象,但對一個列表所做的任何更改都將反映在另一個列表中,因為它們都引用相同的基礎數據。
創造完全獨立的對象
要創造真正獨立的對象,我們必須訴諸深度複製。這涉及創建每個字段的新副本,包括嵌套的可變結構。 Python 的 copy.deepcopy() 函數提供了此功能。
讓我們修改先前的範例:
import copy
original_list = [1, 2, [4, 5]]
new_list = copy.deepcopy(original_list)
現在,如果我們對new_list進行更改,它不會影響original_list:
new_list[2].append(6)
print(original_list) # Output: [1, 2, [4, 5]]
print(new_list) # Output: [1, 2, [4, 5, 6]]
結論
透過利用copy.deepcopy()函數,程式設計師可以建立完全獨立的物件副本,確保對一個物件所做的變更不會影響另一個物件。了解淺複製和深複製之間的區別對於 Python 中有效的物件操作至關重要。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3