首頁  >  文章  >  後端開發  >  如何在 Python 中建立物件的真正獨立副本?

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

DDD
DDD原創
2024-11-03 17:05:03821瀏覽

How to Create Truly Independent Copies of Objects in Python?

在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中文網其他相關文章!

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