我創建列表的列表,並要追加的項目將個別名單,但是當我嘗試添加到列表中的一個(a[0].append(2)
),該項目被添加到所有列表。爲什麼foo.append(bar)會影響列表列表中的所有元素?
a=[]
b=[1]
a.append(b)
a.append(b)
a[0].append(2)
a[1].append(3)
print a
給出:[[1, 2, 3], [1, 2, 3]]
而我希望:[[1, 2], [1, 3]]
改變我構造列表的初始列表的方式,使b
一個浮動,而不是一個列表,並把括號內.append (),給我所需的輸出:
a=[]
b=1
a.append([b])
a.append([b])
a[0].append(2)
a[1].append(3)
print a
給出:[[1, 2], [1, 3]]
但是,爲什麼?結果應該不一樣,這並不直觀。我知道這與multiple references to the same list有關,但我不知道發生了什麼。
謝謝,現在非常有意義。 – litturt 2011-06-17 14:32:04