深拷贝与浅拷贝
深拷贝与浅拷贝
python的赋值与c++不同
问题缘由
之前被坑过一次,结果忘了总结。这次写元胞自动机的时候发现了这个bug,让我迷惑很久才想起来这个问题,遂记录。
具体如下:
a=[1,2,3] |
c++使用变量前会需要先声明变量,故每一个变量都会先有一个地址,而python不需要先命名故会发生这种奇怪的情况,于是就引出了python中的变量空间问题。
python中的拷贝可以理解为创建一个新的命名空间,而不是’真正的拷贝’
浅拷贝
只会被可变类型第一项进行拷贝,不会对子对象进行拷贝。
什么是可变类型?list,dict,set都是可变类型,可以简单理解为可以动态增删改查的数据结构。
import copy |
深拷贝
可以对全部可变类型进行拷贝,所有子对象进行拷贝(可以理解真正的创建了一个变量)
import copy |
总之,deepcopy准没错
本文作者: dummerfu
本文链接:https://dummerfu.top/p/12139.html
版权声明: 本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0许可协议 转载请注明出处!
本文链接:https://dummerfu.top/p/12139.html
版权声明: 本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0许可协议 转载请注明出处!
Comment