沒有系統地學習過python,最近在append的使用上遇到了大問題,吃到了苦頭
之前一直單純地認為通過append把數添加到list中,不需要提前開空間,非常便利,但卻沒有意識到這個過程並不是值傳遞,借用簡書博主Mr_Bluyee的說法,這是傳對象(call by object),因為在python中一切皆為對象
那這個問題具體是什么樣的呢?還是用例子來說明吧
定義了一個list s,將生成的數組 t 放進去,改變 t 中的一個值,再放進 s ,預想的結果是前后兩個 t 是不一樣的

然而結果並非如此

原因是append傳對象,對象改變的話,前后傳進去的都會受到影響,如果不想受到影響的話,我最初找到的方法是重新定義


后來我發現,這個方法有很大的局限性,如果用copy()這個函數,就可以不用重新定義,同時保證傳入的 t 不會跟着一起變

