Re: [問題] 新手發問List資料複製

看板Python作者 (白毛)時間11年前 (2012/09/19 12:09), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串3/3 (看更多)
上一篇g大提供了答案 而我來回一下你原本的方法錯在哪 ※ 引述《mjchen ( )》之銘言: : 各位老手大家好,我有一個不知道該如何問起的問題 : 手邊有一個List如下 : list = [1, 2, 3, 4, 5] : 之後會對這個List的資料做變更,但是又希望能保留過去完整的資料 : 如果這樣寫 : list = [1, 2, 3, 4, 5] : newList = list ^^^ 這裡的等於是把等號右邊的值assign給等號左邊的值 事實上,python裡的物件的變數的值不是物件本身 而是物件的位置 所以這一行執行之後的結果就是 newList跟list的值都是同一塊記憶體位置 例如 [1,2,3,4,5]在14956384這個位置 ┌───────┐ │ │ newList = list ○ ────→[1, 2 ,3, 4, 5]│ ^^^^^^^ ^^^^ ^^^^ │ │ 14956384 14956384 list、newList └───────┘ ^^^^^^^ newList.pop() 我就是14956384 ^^^^^^^^^^^^^^ 事實上就是14956384.pop() ←當然語法上不能這樣寫 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 36.232.218.12

09/26 00:56, , 1F
謝謝G大用心講解+繪圖....現在再來看,看懂了~感謝你!
09/26 00:56, 1F

09/26 00:57, , 2F
太瞎...我是說"W"大(我眼殘)
09/26 00:57, 2F
文章代碼(AID): #1GMKLuvL (Python)
文章代碼(AID): #1GMKLuvL (Python)