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

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

Mary-Kate Olsen
發布: 2024-12-02 01:43:10
原創
957 人瀏覽過

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板