首頁 >後端開發 >Python教學 >如何在 Python 中修改函數內的列表:透過引用傳遞或就地修改?

如何在 Python 中修改函數內的列表:透過引用傳遞或就地修改?

Patricia Arquette
Patricia Arquette原創
2024-10-27 06:12:03847瀏覽

How to Modify a List Within a Function in Python: Pass by Reference or In-Place Modification?

修改函數內的列表

在函數中使用列表參數時,傳遞給函數的引用指向原始列表。函數內對list_arg變數所做的任何修改都僅限於其局部範圍,不會影響原始列表。

要規避此問題並修改原始列表,需要直接將元素分配給列表而不是將整個列表重新分配給新值。以下是一個範例:

def function1(list_arg):
   a = function2()    # function2 returns an array of numbers
   list_arg[:] = list(a)

list1 = [0] * 5
function1(list1)
print(list1)  # [1, 2, 3, 4, 5]

在此修改後的程式碼中,我們使用切片符號 list_arg[:] 將 list(a) 的元素分配給原始列表,從而有效地就地修改列表。

需要注意的是,雖然就地修改看起來很方便,但它們可能會變得難以理解,並可能導致維護程式碼的開發人員感到困惑。為了清晰和可讀性,通常首選顯式重新分配。

以上是如何在 Python 中修改函數內的列表:透過引用傳遞或就地修改?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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