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