天天看点

20-python中的深浅拷贝

<code>只拷贝第一层的内存地址</code>

赋值 示意浅拷贝前先说明赋值

赋值共用同一块内存空间,一个变量的值改变,另一个赋值的变量同时也改变

多个变量名指向同一块内存空间

赋值示意图

20-python中的深浅拷贝

浅拷贝 只拷贝第一层的内存地址

浅拷贝只拷贝第一层的内存空间地址,浅拷贝的两个变量是单独的内存空间,不再是共用同一个内存空间地址

浅拷贝单层元素示意图(增加元素)

20-python中的深浅拷贝

浅拷贝多层元素示意图(修改元素)

20-python中的深浅拷贝

浅拷贝多层元素示意图(第二层增加元素)

20-python中的深浅拷贝

<code>1.浅拷贝只复制第一层内存空间地址</code>

<code>1.浅拷贝,修改第一层元素或者追加元素,都是将旧指向改变为新指向,两个变量互不影响</code>

<code>3.浅拷贝修改第二层及以下元素或者追加元素,修改的是两个变量共用的值,此时修改会影响两个变量</code>

<code>不可变数据类型共用内存空间,可变数据类型开辟新的内存空间,不管嵌套多少层都是这样的原理</code>

Import copy copy.deepcopy()
20-python中的深浅拷贝

<code>深拷贝中,不可变数据类型共用内存空间地址,可变数据类型开辟新的内存空间,不管嵌套多少层都是这样</code>