python浅复制和深复制问题


alist=[3,5,7,9,11]
blist=alist
print(alist is blist)

这里输出的是True

alist=[3,5,7,9,11]
blist=alist[:]
print(alist is blist)


这里输出的是false

我的问题是 第二个代码中通过切片赋值 应该是引用 这种引用是浅复制吗
浅复制和深复制都能改变地址吗

一个是地址,一个是值
blist=alist这个是地址,深拷贝
blist就是alist,alist就是blist,改变blist中的值就是改变alist的值

blist=alist[:]是复制的值,即浅拷贝

is 比较的是地址,第一个完全复制了,地址一样。第二个就是复制了值,地址不一样

浅复制:
浅复制是复制对象的第一层元素,对于复杂结构,深层的元素复制不到
修改原对象的最外层元素时,复制出来的新对象元素不发生改变,
修改元对象的内层元素时,复制的新对象的内层元素随之发生改变。
深复制
深复制是复制对象中的所有元素,复制的是全新的对象,不在与原对象有任何关联。改变原对象不会对已经复制出来的新对象产生影响。