深拷贝 与浅拷贝

# ### 深拷贝 与浅拷贝
'''
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  # copy.deepcopy()
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)

  

猜你喜欢

转载自www.cnblogs.com/huangjiangyong/p/10823128.html