目标:
1:掌握数据的深浅拷贝区别
2:掌握python怎么实现深浅拷贝
一:数据的深浅拷贝区别
浅拷贝:只拷贝数据的内存地址(引用),不会开辟新的内存空间,不能保证数据的独立性,如果拷贝的是对象【列表的嵌套】,原对象和copy对象都指向于同一个内存空间,不会拷贝对象内部的子对象
深拷贝:拷贝后会开辟新的内存空间存放拷贝后的数据,如果拷贝的是对象【列表的嵌套】,原对象和copy对象指向不同的内存空间,会拷贝对象及其子对象
注意事项:上述的深浅拷贝只是相对的,有些数据类型不能保证其正确性,比如简单可变数据类型(列表)的浅拷贝就会产生新的内存空间!
二:python怎么实现深浅拷贝
关键字:
浅拷贝:copy(变量名)
深拷贝:deepcopy(变量名)
语法:
import copy
list1 = [1,2,3,4]
list2 = copy.copy(list1) 浅拷贝
list3 = copy.deepcopy(list1) 深拷贝
图示: