1.13 深浅拷贝

Posted lihouqi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1.13 深浅拷贝相关的知识,希望对你有一定的参考价值。

1. 预备知识一——python的变量及其存储

1. python的一切变量都是对象,变量的存储,采用了引用语义的方式,存储的只是一个变量的值所在的内存地址,而不是这个变量的只本身

2. 不管多么复杂的数据结构,浅拷贝都只会copy一层。

理解:两个人公用一张桌子,只要桌子不变,桌子上的菜发生了变化两个人是共同感受的。

2. 浅copy与deepcopy

1. 浅copy:  不管多么复杂的数据结构,浅拷贝都只会copy一层

2. deepcopy :  深拷贝会完全复制原变量相关的所有数据,在内存中生成一套完全一样的内容,我们对这两个变量中任意一个修改都不会影响其他变量


import copy
sourceList = [1,2,3,[4,5,6]]
copyList = copy.copy(sourceList)
deepcopyList = copy.deepcopy(sourceList)
 
sourceList[3][0]=100
 
print(sourceList)           # [1, 2, 3, [100, 5, 6]]
print(copyList)             # [1, 2, 3, [100, 5, 6]]
print(deepcopyList)         # [1, 2, 3, [4, 5, 6]]

以上是关于1.13 深浅拷贝的主要内容,如果未能解决你的问题,请参考以下文章

深浅拷贝

《关于JavaScript的深浅拷贝》

python--is/id==,集合,深浅拷贝

python深浅拷贝

我要学python之深浅拷贝原理

Python高级语法-深浅拷贝-总结(4.2.1)