1
我想使用python基本庫編碼「1024」。在這個過程中,我嘗試將一個列表[0,2,4,4]變成[0,2,8,0]。所以這是我的測試代碼。這非常簡單。python函數如何改變參數而不是形式參數?
def merger(a, b):
if a == b:
a += b
b = 0
numlist = [0, 2, 4, 4]
merger(numlist[0], numlist[1])
merger(numlist[1], numlist[2])
merger(numlist[2], numlist[3])
print (numlist)
所以當我嘗試進行合併。我期待輸出[0,2,8,0]。但是,它給了我[0,2,4,4]。我想也許是因爲我只是改變了函數的局部變量a b而不是實際的參數?但是,如果我想要發生這種情況,我該怎麼辦?謝謝!
我想我一般都想知道如果我想要一個函數不會返回任何東西,而只是改變我作爲參數傳遞的變量的值。我怎樣才能實現它?
你可以用'global a,b'引入全局變量。但是,這通常不被認爲是好的做法......通常,人們更喜歡使用'return'語句從函數中獲取值。 – nostradamus
@nostradamus:是的,避免修改全局變量是很好的做法,但'global'對於OP的代碼沒有幫助。 –
哦,這很有趣。謝謝! –