二十、浅拷贝和深拷贝

浅拷贝和深拷贝(只针对可变类型)

可变类型:列表/字典/集合,特征:值变id不变

最基本拷贝

特征:值变id不变

list = [1,2,3,4]
list2 = list

list 内的元素发生变化 list也会发生变化

list.append(5)
print(list,list2)

浅拷贝 copy

'''如果list3 是list的浅拷贝对象,list内的不可变对象发生改变,则list3不变
,如果list内的可变对象改变,则list3的随着改变'''
import copy

list = [1,2,3,[4,5,6]]
list3=copy.copy(list)
print(list3)
list[0] += 1
list[3].append(8)
print(list)
print(list3)

深拷贝

'''如果lis2 是lis的浅拷贝对象,lis内的不可变对象发生改变,则lis2不变
,如果lis内的可变对象改变,则lis也不改变'''
import copy
lis= [1,2,3,4,[5,6,7]]
lis2=copy.deepcopy(lis)

lis[0]+=1
print(lis)
print(lis2)
lis[4].append(9)
print(lis)
print(lis2)

posted @ 2020-01-13 17:08  咸鱼老林头  阅读(87)  评论(0编辑  收藏  举报