list1、別のlist2に追加したいので、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]]]