線上代碼 a = [1,2,3] def abc(a): a.remove(1) abc(a) print(a) 這段代碼先指定了一個a變數是個list,又寫了一個abc函數,功能是把外面傳進來的list裡面的1這個值去掉 按理說在函數內的執行只應該屬於函數內的變化,但是實際列印結果是[2,3],函 ...
先上代碼
a = [1,2,3] def abc(a): a.remove(1) abc(a) print(a)
這段代碼先指定了一個a變數是個list,又寫了一個abc函數,功能是把外面傳進來的list裡面的1這個值去掉
按理說在函數內的執行只應該屬於函數內的變化,但是實際列印結果是[2,3],函數把外面變數的1刪掉了
這不是我想要的,我只想要變數在函數里處理成我想要的,函數外面的依然不變
現在把函數傳進來的變數名換一下
a = [1,2,3] def abc(b): b.remove(1) abc(a) print(a)
心想這次應該沒有問題了吧,結果和上面一樣是[2,3]
哪有什麼辦法可以得到我想要的結果呢,這就用到了copy模塊,將代碼改一下
import copy a = [1,2,3] def abc(a): b = copy.copy(a) b.remove(1) abc(a) print(a)
執行結果是[1,2,3],是我想要的結果