龙空技术网

python中浅拷贝和深拷贝的区别

Python智禅 102

前言:

而今咱们对“python3深拷贝和浅拷贝”大约比较关心,大家都需要学习一些“python3深拷贝和浅拷贝”的相关内容。那么小编同时在网络上搜集了一些有关“python3深拷贝和浅拷贝””的相关文章,希望各位老铁们能喜欢,各位老铁们快快来了解一下吧!

浅拷贝可变类型浅拷贝

copy函数就是浅拷贝,只对可变类型的第一层对象进行拷贝,

对拷贝的对象开辟新的内存空间进行存储,不会拷贝对象内部的子对象

可变类型:a = [1, 2, 3] b = [11, 22, 33]

有子对象的可变类型: data = [a, b]

普通赋值

data_mycopy = data -- data和data_mycopy指向同一片空间

浅拷贝

data_copy = copy.copy(data) -- data和data_copy指向不同的空间不可变类型浅拷贝

不可变类型进行浅拷贝不会给拷贝的对象开辟新的内存空间,而只是拷贝了这个对象的引用

不可变类型: a = (1, 2, 3) b = (11, 22, 33)

有子对象的不可变类型:data = (a, b)

data_copy = copy.copy(data) -- data和data_copy指向同一片空间

深拷贝可变类型深拷贝

深拷贝使用deepcopy函数

只要发现拷贝对象有可变类型就会对该对象到最后一个可变类型的每一层对象进行拷贝,对每一层拷贝的对象都会开辟新的内存空间进行存储

data_deepcopy = copy.deepcopy(data)不可变类型深拷贝

不可变类型的深拷贝说明:

不可变类型进行深拷贝不会给拷贝的对象开辟新的内存空间,而只是拷贝了这个对象的引用

不可变类型: a = (1, 2, 3) b = (11, 22, 33)

有子对象的不可变类型:data = (a, b)

data_deepcopy = copy.deepcopy(data) -- data和data_copy指向同一片空间

【原创】禁止转载

最后,小编想说:我是一名python开发工程师,

整理了一套最新的python系统学习教程,

想要这些资料的可以关注私信小编“01”即可(免费分享哦)希望能对你有所帮助

标签: #python3深拷贝和浅拷贝 #python的深拷贝和浅拷贝