修改函數內的列表
在函數中使用列表參數時,傳遞給函數的引用指向原始列表。函數內對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中文網其他相關文章!