在列表中
例1
list1 = [1, 2, 3]
list2 = list1
list2[0] = -1
此时打印出list1,发现list1[0]也变成了-1
所以将list2 = list1后,list1和list2引用同一块内存
但是在以下情况
例2
a = 1
b = a
b = -1
打印a后发现,a仍为1,并没有变成-1,说明在操作b = a后,b和a并没有指向同一块内存
在网络上有人说变量名类似于指针,但例2明显不是,这是怎么回事呢?
因为第一个是深层拷贝,相当于把list1的地址拷贝给他了,他改变其中一个元素,就是改变得list1的其中一个元素
但是第二个是浅拷贝,这相当于两次赋值。其实你可以在第一个例子写一个list2=1,一样的list1也不会被改变,因为这样使用就是浅拷贝了,它用list1的某个元素的时候才是深拷贝
有帮助的话请点个采纳吧~