在Python 中處理列表時,了解按引用傳遞的概念非常重要,其中對另一個變量引用的列表會反映在兩個變數中。這可能會導致意外行為,尤其是在處理對相同清單的多個引用時。
考慮以下範例:
a = ['help', 'copyright', 'credits', 'license'] b = a b.append('XYZ') print(b) # Output: ['help', 'copyright', 'credits', 'license', 'XYZ'] print(a) # Output: ['help', 'copyright', 'credits', 'license', 'XYZ']
在此範例中,b 是對相同清單的引用作為當我們將「XYZ」附加到b 時,它也會被添加到a,因為兩個變數都指向相同的基礎列表。這稱為按引用傳遞。
為了避免這種情況,我們需要以數值傳遞清單。在 Python 中,這可以透過建立原始清單的副本來實現。有多種方法可以做到這一點,但最常見的是使用切片運算符:
b = a[:]
這會建立一個新列表,其中包含 a 中元素的副本。對 b 所做的任何更改都不會影響 a,反之亦然。例如:
b.append('ABC') print(b) # Output: ['help', 'copyright', 'credits', 'license', 'XYZ', 'ABC'] print(a) # Output: ['help', 'copyright', 'credits', 'license', 'XYZ']
在這種情況下,將 'ABC' 附加到 b 不會影響 a,因為它們現在引用不同的列表。
以上是將列表傳遞給函數時,如何避免 Python 中的意外列表修改?的詳細內容。更多資訊請關注PHP中文網其他相關文章!