关于赋值,浅拷贝与深拷贝的形象理解

赋值:旧瓶装旧酒
a = b,其中的ab指向同一块内存区域。

浅拷贝:新瓶装旧酒
a = b[:]或者a = b.copy(),其中的ab虽然不指向同一块内存区域,但是这两个容器内部所存储的数据的地址值(在Python中可以通过id()这个函数来访问到)是相同的。也就是说,我们上面的操作,即a = b[:]或者a = b.copy()并没有产生新的酒,只是产生了新的酒瓶。

深拷贝:新瓶装新酒
a = b.deepcopy(),我们既产生了新的酒瓶(ab),又产生了新的酒(酒指的是ab这两个容器里面存储的数据。经过深拷贝之后,它们内容相同,但是地址不同)。

你可能感兴趣的:(关于赋值,浅拷贝与深拷贝的形象理解)