」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何在 Python 中建立真正獨立的物件副本?

如何在 Python 中建立真正獨立的物件副本?

發佈於2024-11-16
瀏覽:473

How to Create Truly Independent Copies of Objects in Python?

在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