為什麼更改一個清單會意外地改變另一個
在Python 中,經常會遇到更改一個清單似乎會意外影響另一個列表的情況。讓我們檢查一下為什麼會發生這種情況。
考慮以下程式碼:
<code class="python">v = [0, 0, 0, 0, 0, 0, 0, 0, 0] vec = v vec[5] = 5</code>
執行此程式碼後,v 和vec 都會顯示以下修改後的清單:[0, 0, 0, 0, 0, 5, 0, 0, 0].
解釋:
vec 和v 不是單獨的列表,而是對內存中同一列表的引用。當您指派 vec = v 時,您並不是在建立新清單;而是在建立新清單。相反,您為 vec 提供與 v 相同的位址。因此,對 vec 所做的任何修改都會直接影響 v 和 vec 引用的原始清單。
解決方案:
要創建v 的副本而不僅僅是對它的引用,您應該使用以下語法:
<code class="python">vec = list(v)</code>
透過使用list(v),您可以建立一個具有與v. 對vec 所做的任何變更都不會影響v,反之亦然。
以上是為什麼在 Python 中修改一個清單似乎會改變另一個清單?的詳細內容。更多資訊請關注PHP中文網其他相關文章!