引用
下图中从d和c的id()可以知道,d和c都指向了[a,b],并没在内存中开辟一个新的地址,。注意c列表中的两个元素也是一个引用,分别是a,b所指向的列表的引用。
引用的理解图
浅拷贝
下图中e对c进行了浅拷贝,我们可以发现e和c的id不同,即e在内存空间新开辟了一块地址,但是e列表的第一个元素地址和c列表的第一个元素地址c相同,即他们共同指向[11,22],即浅拷贝只是拷贝了最外一层的对象,内层对象不拷贝。
浅拷贝的理解图
深拷贝
下图中f对c进行了深拷贝,我们可以发现f和c的id不同,即f在内存空间新开辟了一块地址,而且f列表的f第一个元素地址和c列表的第一个元素地址c不相同,即f也开辟了一个新的地址用来存[11,22],即深拷贝不仅拷贝了最外一层的对象,而且也对内层对象拷贝。
深拷贝的理解图