作者gozule (好冷啊~~)
站內Python
標題Re: [問題] 新手發問List資料複製
時間Wed Sep 19 02:41:38 2012
※ 引述《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
推 mjchen:謝謝G大!!! 09/19 03:21
推 shaopin:請問l=list[:]和copy.copy是用reference還是做新的? 09/19 09:29
→ gozule:這兩種方式是都用新的,用id(obj)看很清楚 09/19 10:18