首頁  >  文章  >  後端開發  >  為什麼在 Python 中修改一個清單會影響另一個清單?

為什麼在 Python 中修改一個清單會影響另一個清單?

DDD
DDD原創
2024-11-02 12:37:02836瀏覽

Why Does Modifying One List Affect Another in Python?

Python 中的意外連結清單

在 Python 中使用清單時,可能會出現意外行為。讓我們了解為什麼更改一個清單會意外影響另一個清單。

問題:

考慮以下Python 程式碼:

<code class="python">v = [0, 0, 0, 0, 0, 0, 0, 0, 0]
vec = v  # Assignment by reference
vec[5] = 5</code>

此程式碼執行後, v 和vec 都在索引5 處顯示修改後的值:

>>> print(vec)
[0, 0, 0, 0, 0, 5, 0, 0, 0]
>>> print(v)
[0, 0, 0, 0, 0, 5, 0, 0, 0]

即使v 沒有明確修改,為什麼它也會改變?

理解問題:

在Python中,當你將一個清單分配給一個新變數時,你並不是在創建一個副本;而是在創建一個副本。相反,您正在創建一個參考。這意味著 v 和 vec 都指向記憶體中相同的底層列表物件。

解決方案:

要擁有兩個具有相同值的單獨列表,您需要建立使用list() 建構子的副本:

<code class="python">vec = list(v)  # Creates a copy</code>

現在,當您對vec 進行更改時,v 將不受影響。

以上是為什麼在 Python 中修改一個清單會影響另一個清單?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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