深拷贝
#导入拷贝模块
import copy
list01 = [100,[200,300]]
#深拷贝:不光会复制地址,会把对象也复制一份给新的变量(地址)
#深拷贝:新拷贝出的地址+对象和原先的地址+对象互不影响
#注意:深拷贝相对占用更多内存(原数据很大的情况下,可能占很多内存)
list02 = copy.deepcopy(list01)
list01[1][0] = 500
print(list01) #[100,[500,300]]
print(list02) #[100,[200,300]]
浅拷贝
import copy
list01 = [100,[200,300]]
#浅拷贝:只是复制出一个新的地址,两个地址绑定的是同一个对象
lsit02 = list01.copy()
#修改对象本身
list01[1][0] = 500
print(list02[1][0] #也是500
list01 = ['三丰','翠山',"无忌"]
#复制list01这个地址给list02,这两个地址绑定的是同一个对象
list02 = list01
#对象本身修改
list01[0] = '五丰'
print(list02[0]) #也变成了'五丰'
切片
切出新的对象,该对象的值和原来是一样的
lsit01 = [800,900,1000]
#切片相当于将list01的对象又单独复制出一份,但值是一样的
list02 = list01[:]
list01[0] = '八百'
print(list02[0]) #打印出还是800
切片赋值:对原序列进行操作,不会生成新的序列,赋的值必须是可迭代对象(单个整型这种不行)
list01 = [0,1,2]
list01[1:2] = ['A','B'] #切片赋值
list01[1:2] = ['ytx']
print(list01) #[0,'ytx',2]赋值成功