这是因为列表包含对对象的引用。您的列表不包含
[[1 2 3] [1 2 3]]
它是
[<reference to b> <reference to b>]
.
当您更改对象时(通过在
b
),您正在更改对象本身,而不是包含该对象的列表。
为了得到你想要的效果,你的清单
a
必须包含
乙
而不是提及
乙
. 若要复制列表,可以使用范围
[:]
. 例如:
>>> a=[]
>>> b=[1]
>>> a.append(b[:])
>>> a.append(b[:])
>>> a[0].append(2)
>>> a[1].append(3)
>>> print a
[[1, 2], [1, 3]]