Python3中深拷贝与浅拷贝
python中关于深拷贝和浅拷贝的详解
概述
在python的语法中,有两种变量的拷贝方式
一种是深拷贝,一种是浅拷贝
我们先说深拷贝
语法
这里需要通过导入系统的copy模块中的deepcopy才可以
import copy
新的对象 = copy.deepcopy(被拷贝对象)
解释
深拷贝是将操作对象整体复制出来一份,与其原来拷贝的对象没有联系,拷贝后重新分配一个内存地址
对拷贝和的对象进行各种操作,原对象也不收到影响
再来说浅拷贝
语法
浅拷贝的语法很多
新的对象 = 被拷贝对象
新的对象 = 被拷贝对象.copy()
新的对象 = lis被拷贝对象t0[:]
import copy
新的对象 = copy.copy(被拷贝对象)
解释
浅拷贝中,虽然对象本身的地址发生了改变,但是对象中包含的数据还是原来的地址,仅仅是传递过来一个引用
指向了原来对象中的数据,如果改变其中一个对象中的内容,其另一方也会对应更改
(这里需要注意,如果更改的数据类型是不可更改对象,则改变的是其引用,本身没有改变,只是这个位置的数据换成了另一个地址中的)
下面看一下代码的测试(小编的测试环境是python3.8版本)
1 |
|
结果如下:
1 | D:\Python38\python.exe E:/PycharmProjects/python_August/day09/关于列表的拷贝问题.py |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment