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

看板Python作者 (好冷啊~~)時間13年前 (2012/09/19 02:41), 編輯推噓2(201)
留言3則, 3人參與, 最新討論串2/3 (看更多)
※ 引述《mjchen ( )》之銘言: : 各位老手大家好,我有一個不知道該如何問起的問題 : 手邊有一個List如下 : list = [1, 2, 3, 4, 5] : 之後會對這個List的資料做變更,但是又希望能保留過去完整的資料 : 如果這樣寫 : list = [1, 2, 3, 4, 5] : newList = list : newList.pop() : print list : print newList : 兩者都會得到 [1, 2, 3, 4] : 目前硬試的方式是 : newList = list*1 : 才會得到 : list = [1, 2, 3, 4, 5] : newList = [1, 2, 3, 4] : 使用python是因為繪圖軟體開始支援python的語法(過去是用VB) : 對資料的暫存和讀取一直鬼打牆 = = : 所以上來尋求各位幫忙,謝謝!! : ------------------------------------------------------- : 數位迪化建築展 : 2010 URS_127 facade : http://issuu.com/mjchen/docs/urs127_facade_cht 如果只是簡單的list copy的話,使用 newList = list[:] 或是 import copy newList = copy.copy(list)均可。 如果是nested list時,必須使用copy.deepcopy才能完整複製list. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 27.51.130.84

09/19 03:21, , 1F
謝謝G大!!!
09/19 03:21, 1F

09/19 09:29, , 2F
請問l=list[:]和copy.copy是用reference還是做新的?
09/19 09:29, 2F

09/19 10:18, , 3F
這兩種方式是都用新的,用id(obj)看很清楚
09/19 10:18, 3F
文章代碼(AID): #1GMC1bIJ (Python)
文章代碼(AID): #1GMC1bIJ (Python)