1.python中的数据类型分为两种:
不可变数据类型:数值number,字符串String,元组tuple
可变数据类型:字典dic,列表list,集合set
2.定义
深拷贝:拷贝的程度深,开辟了一块新的内存,将被拷贝的内容全部拷贝过来,放到这块新的内存中
浅拷贝:拷贝的程度钱,只拷贝原数据的首地址,通过原数据的首地址,去获取内容
两者的优缺点对比:
(1)深拷贝拷贝程度高,将原数据复制到新的内存空间中。改变拷贝后的内容不影响原数据内容。但是深拷贝耗时长,且占用内存空间。
(2)浅拷贝拷贝程度低,只复制原数据的地址。其实是将副本的地址指向原数据地址。修改副本内容,是通过当前地址指向原数据地址,去修改。所以修改副本内容会影响到原数据内容。但是浅拷贝耗时短,占用内存空间少。
浅拷贝注意事项:
改变原始对象中为可变类型的元素的值,会同时影响拷贝对象。
改变原始对象中为不可变类型的元素的值,不会响拷贝对象。
深拷贝注意事项:
深拷贝,除了顶层拷贝,还对子元素也进行了拷贝。
经过深拷贝后,原始对象和拷贝对象所有的可变元素地址都没有相同的了。
代码实例:
通过代码可以看出,对于浅拷贝,当我们向原数据中的可变数据类型之一的列表追加一个元素,原数据和浅拷贝之后的数据都发生了变化,反而对于不可变数据类型,浅拷贝之后没有发生变化!
标签:python,数据类型,地址,内容,拷贝,数据 From: https://www.cnblogs.com/99kol/p/16633197.html