首頁 >後端開發 >Python教學 >為什麼在 Python 中修改一個清單似乎會改變另一個清單?

為什麼在 Python 中修改一個清單似乎會改變另一個清單?

Patricia Arquette
Patricia Arquette原創
2024-11-02 13:05:30964瀏覽

Why Does Modifying One List Seem to Change Another in Python?

為什麼更改一個清單會意外地改變另一個

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

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