我想了解如何將列表作爲參數傳遞給函數時進行處理。所以我所做的是以下幾點:傳遞給函數時列表發生了什麼?
我初始化列表:
ll = [1,2,3,4]
和定義一個函數:
def Foo(ar):
ar += [11]
我通過列表的功能:
Foo(ll)
當我打印它時,我得到:
print ll # [1, 2, 3, 4, 11] #case(1)
到目前爲止好。
現在我爲了重新設置列表,使得它只有一個元素修飾功能:
def Foo(ar):
ar = [11]
我回憶的語法:
Foo(ll)
,當我重新打印,它導致在同一個列表中:
print ll # [1, 2, 3, 4] # case(2)
我以爲列表通過作爲參考;所以無論我們對函數內的列表做什麼都會改變從主程序傳來的原始函數。因此,對於案例(2)我期待以下結果:
print ll # [11] # case(2) expected result
我在這裏錯過了什麼嗎?
'ar = [11]'將名稱分配給**完全不同的對象**。如果要替換列表的全部內容,請嘗試'ar [:] = [11]'。 – jonrsharpe
我發現你選擇名稱和值('ll'和'11')令人不安... – rodrigo
對於名稱和值的選擇,我很抱歉。 – rnels12