python 切片,浅拷贝和深拷贝知识汇总

  在python中,没有指针概念,但采用引用来代替这个概念。当对变量赋值时,相当于值的引用地址(类似于物理地址)存储到变量中。

浅拷贝是指拷贝数据的表层,虽是开辟空间,存储数据,但只是copy表层的数据。若数据是多层嵌套,则第二层的数据只是赋值其引用地址。

  深拷贝是深层次拷贝数据,另开空间,将数据复制到这里。两个数据没有任何联系。

切片是一种浅拷贝,仅仅拷贝表层数据。

  

a=[1,[2,9]]
b=a[-1]#切片操作,浅copy,又涉及到多层数据,因此,a,b,a[-1]所指向的地址相同都为【2,9】
def change(data):
    data[0],data[1]=data[1],data[0]
change(b)
print(b,a)
#单切片,浅copy