0
我想定義一個函數列表 x是它的輸入變量,假設我想在輸入變量(x)的值在執行該函數後不變,我認爲我應該做的是分配將輸入變量(x)的值賦值給另一個變量(y),並對該新變量(y)進行計算,並在結尾處返回y,保持輸入變量x不變(這是代碼中的第二個函數)。python如何在函數中更改輸入變量的值,即使它被分配給另一個變量?
實現該代碼給出了與未添加新變量y並在y上執行計算的結果相同的結果。 x的值被改變。 (它給出了與第一個函數相同的結果)
我發現通過構造一個空列表y來間接地將x的值分配給y,然後將y的條目逐個添加到y然後執行操作在y上解決了這個問題(如代碼中的第三個函數)。
我的問題是,爲什麼python做到這一點?當我將x的值賦給y並對y做了x保持不變的情況下,情況不應該如此嗎?我錯過了什麼?
def li(X):
X.append(1)
return(X)
def le(X):
Y=X
Y.append(1)
return(Y)
def lo(X):
Y=[]
for i in range(X):
Y.append(X[i])
Y.append(1)
return(X)
好的技巧,非常感謝你:) –
@FawzyHegab非常感激福吉。 –