首頁 >後端開發 >Python教學 >將列表傳遞給函數時,如何避免 Python 中的意外列表修改?

將列表傳遞給函數時,如何避免 Python 中的意外列表修改?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-02 01:43:101016瀏覽

How Can I Avoid Unintended List Modifications in Python When Passing Lists to Functions?

按值傳遞列表,而不是按引用

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

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