我想要做的是分配一個嵌套列表到另一個列表。例如,從alist到blist。嵌套的Python列表分配
alist = [[0], [1], [2], [3]]
blist = alist[:]
blist[0].append(1)
這樣,id(alist[0])
等於id(alist[1])
,所以ALIST也變爲[[0,1], [1], [2], [3]]
,這不是我想要的。
解決方法我有是:
alist = [[0], [1], [2], [3]]
blist = []
for item in alist:
blist.append(item[:])
blist[0].append(1)
在此解決方案,ALIST不會被改變blist的項目的影響。 但是,它似乎不是pythonic,有沒有更好的解決方案?這可以解決更多2級嵌套列表的深層副本。例如:alist = [[[1], 10], [[2], 20], [[3], 30]]
你的解決方法可以更簡單地寫爲:'blist = [項目[:]在ALIST項目]'或者我更喜歡'[列表(項目)列表(項目)]。然而@ cha0site的解決方案是正確的。 – jamylak 2012-07-09 07:05:11