当我写下“什么;a、 b,c=[[],]*3“;用python?a、b、c似乎是同一个物体

当我写下“什么;a、 b,c=[[],]*3“;用python?a、b、c似乎是同一个物体,python,Python,当我用python编写a,b,c=[[],]*3时发生了什么 似乎a,b,c是同一个对象 a,b,c=[],]*3 a、 附加(1) b、 附加(2) 印刷品(c) 答案是[1,2],为什么?操作员只创建同一列表的副本三次,而不是三个新列表 因此,a,b,c都指向同一个列表。您将1和2添加到这两者 这: a,b,c=[]表示范围(3)内的 a、 附加(1) b、 附加(2) 印刷品(c) 将按预期为您提供[]。对象的副本意味着创建一个具有相同值的全新对象。在这种情况下,它不是复制,它是引用

当我用python编写
a,b,c=[[],]*3
时发生了什么 似乎
a
b
c
是同一个对象

a,b,c=[],]*3
a、 附加(1)
b、 附加(2)
印刷品(c)

答案是
[1,2]
,为什么?

操作员只创建同一列表的副本三次,而不是三个新列表

因此,
a
b
c
都指向同一个列表。您将
1
2
添加到这两者


这:

a,b,c=[]表示范围(3)内的
a、 附加(1)
b、 附加(2)
印刷品(c)

将按预期为您提供
[]

对象的副本意味着创建一个具有相同值的全新对象。在这种情况下,它不是复制,它是引用,创建了3个对象,它们被引用到同一个对象。它是指针的副本!没有所谓的“参照物”。底层语义是复制指针的语义——指针指向同一内存位置。