深拷贝与浅拷贝
import copy
v = 123
一分彩网站制作q<115.28.8.00.9.9>
v1 = copy.copy(v) #浅拷贝
v2 = copy.deepcopy(v) #深拷贝
**拷贝只拷贝可变数据类型,浅拷贝只拷贝第一层,深拷贝拷贝所有层
不可变数据类型:int str bool 元组tuple
可变数据类型:列表list 集合set 字典dict
复制代码
变量是 int str bool 元组tuple
v = “wangxiaobei”
v1 = copy.copy(v) #浅拷贝
v2 = copy.deepcopy(v) #深拷贝
print(id(v),id(v1))
print(id(v),id(v2))

#2877544721776 2877544721776
#2877544721776 2877544721776
复制代码
深拷贝和浅拷贝在对不可变数据进行复制时,不改变数据,都是指向该数据的地址(原因是Python的小数据池)

复制代码
列表
v = [1,2,3]
v1 = copy.copy(v)
v2 = copy.deepcopy(v)
print(id(v),id(v1))
print(id(v),id(v2))

#2877551762760 2877544718856
#2877551762760 2877551412680

嵌套列表
v = [1,2,[22,11,33]]
v1 = copy.copy(v)
v2 = copy.deepcopy(v)
print(id(v[2]),id(v1[2]))
print(id(v[2]),id(v2[2]))

#2877551763208 2877551763208
#2877551763208 2877544722184