python小白——进阶之路——day7天-———深浅拷贝

###深拷贝 与 浅拷贝
'''
a = 15
b = a
a =16
print(b)

lst1 = [1,2,3]
lst2 = lst1
lst1.append(4)
print(lst2)
'''
# 浅拷贝 只拷贝一级所有元素
lst1 = [1,2,3]
# lst2 = lst1
lst2 = lst1.copy()
print(lst2)
lst1.append(4)
print(lst2)
print(lst1)
#使用模块进行浅拷贝操作
import copy
#copy 模块下面有一个同名copy方法
lst1 = [1,2,3]
lst2 =copy.copy(lst1)
lst1.append(5)
print(lst2)
#深拷贝 将所有级别的元素统统独立拷贝一份
'''每一级的所有元素通通拷贝一份,不沿用以前的数据'''
# import 引入 copy 复制模块 deepcopy 深拷贝 copy浅拷贝
import copy
lstvar =[1,2,3,[4,5,6]]
lstvar2 = copy.deepcopy(lstvar)
lstvar[-1].append(7)
print(lstvar2)

dictvar = {'a':[1,2],"b":{"c":123,"d":[7,8,9]}}
dic2 = copy.deepcopy(dictvar)
dictvar["b"]["d"].extend("ab")
print(dic2)


listvar = [1,2,3,[4,5]]
lst2 = copy.copy(listvar)
listvar.append(66)
print(lst2)
listvar = [1,2,3,"45"]
listvar[-1] = 111222

# 使用列表的切片实现浅拷贝 , 不能实现深拷贝
lst = [1,2,3,[4,5]]
lst2 = lst[:] # lst[::]
lst[-1].append(6)
print(lst2)

猜你喜欢

转载自www.cnblogs.com/-sch-593057927/p/10854169.html