首頁 >後端開發 >Python教學 >為什麼在 Python 中更改複製變數會影響原始變數?

為什麼在 Python 中更改複製變數會影響原始變數?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-14 19:11:13682瀏覽

Why Does Changing a Copy Variable Affect the Original Variable in Python?

Python:為什麼更改複製變數會影響原始變數

在Python 中,您可能會遇到一種奇怪的行為,即對副本進行修改變數似乎也改變了原始變數。發生這種情況是因為 Python 變數儲存引用而不是實際值。

要理解這一點,請考慮所描述的情況:

org_list = ['y', 'c', 'gdp', 'cap']
copy_list = org_list       # Pass reference to org_list
copy_list.append('hum')

print(copy_list)           # ['y', 'c', 'gdp', 'cap', 'hum']
print(org_list)            # ['y', 'c', 'gdp', 'cap', 'hum']

當您將copy_list 分配給org_list 時,您並不是在創建新列表而是建立對內存中同一列表物件的參考。因此,對 copy_list 或 org_list 的任何變更都會直接影響這兩個變數。

要建立真正獨立的副本,您需要傳遞實際資料的副本,而不是引用。這可以透過使用切片賦值運算子來完成:

copy_list = org_list[:]    # Create a deep copy by slicing

透過對原始清單進行切片,您可以使用自己的資料副本建立一個新的清單物件。對 copy_list 所做的任何修改都不會影響 org_list,反之亦然。

以上是為什麼在 Python 中更改複製變數會影響原始變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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