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