天天看點

python關于list的一個坑由于python中的變量直接指向的是引用造成了使用二維list時的一個坑

由于python中的變量直接指向的是引用造成了使用二維list時的一個坑

廢話少說,看代碼

ls = [[0,1]]*10  #建立一個二維清單,每一列中有一個1,2
ls[0][0] = 10  #令第一行第一列等于10
print(ls)  #猜猜會輸出什麼?
#結果就是[[10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1]]
           

所有的0都變成10了,為什麼?

因為ls裡儲存的是[0,1] 的10 個引用。也就是說這裡的10個[0,1]本質上是同一個對象,而不是10個不同的對象。