意外的列表突變
建立類似v = [0,0,0,0,0,0,0,0 的列表時,0],您可能會假設將新清單指派給變數會建立一個單獨的參考。但是,以下程式碼可能會出現意外行為:
<code class="python">vec = v vec[5] = 5</code>
vec 和 v 現在都在索引 5 處包含值 5。為什麼會發生這種情況?
引用賦值
在 Python 中,列表是可變物件。分配 vec = v 不會建立清單的新副本。相反,它分配對 v 的引用。 vec 和 v 都指向記憶體中相同的基礎列表物件。
對 vec 或 v 進行的任何修改都會影響原始列表,因為它們是相同的列表。這就是為什麼當 vec[5] 改變時,v 也會改變。
解決方案
要建立清單的單獨副本,請使用list() 函數:
<code class="python">vec = list(v)</code>
這將建立一個新的列表對象,其中包含v 中元素的副本。對 vec 所做的任何更改都不會影響 v,反之亦然。
以上是為什麼在 Python 中將清單指派給新變數不會建立單獨的副本?的詳細內容。更多資訊請關注PHP中文網其他相關文章!