我想追加到list1,另一個列表2,所以修改list2和另一個時間追加到list1,但list1的值被覆蓋。將列表追加到列表中,覆蓋值
我以前[:]
與追加和工程確定:
list1=[1,2]
list2=[]
list2.append(list1[:])
list1[0]=20
print list1, list2 # [20, 2] [[1, 2]]
但問題是,當列表有內部
list1=[[2,1],[2]]
list2=[]
list2.append(list1[:])
print list1, list2 #[[2, 1], [2]] [[[2, 1], [2]]]
list1[0][0]=25
list2.append(list1)
print list1, list2 #[[25, 1], [2]] [[[**25**, 1], [2]], [[25, 1], [2]]]
我希望是最後一次打印是另一個列表[[25, 1], [2]] [[[2, 1], [2]], [[25, 1], [2]]]
這裏的問題是,列表是可變的 - 你正在改變列表的價值,和你的其他名單內的列表只是一個指向它,這樣也發生了變化。 –