标签:array 技术分享 list nump src jpg 数据结构 复制 技术
变量的引用,没有拷贝空间
对象之间赋值本质上 是对象之间的引用传递而已。也就是多个对象指向同一个数据空间。
. 拷贝可变类型
浅拷贝:
只拷贝第一层数据,不关心里面的第二层内容,能够保证外层数据独立
深拷贝:
拷贝了所有层数据,所有层数据都是独立。
而一层可变类型数据,深拷贝和浅拷贝是一样,会拷贝。
. 拷贝不可变类型
一层不可类型数据,深拷贝和浅拷贝也是一样,不会拷贝,只是引用
多层都是不可类型数据,深拷贝和浅拷贝也是一样,不会拷贝,只是引用
多层中只要有可变类型数据
浅拷贝:
只关心第一层,如果第一层是不可变类型,不会拷贝,只是引用
深拷贝:
关心所有层,多层中只要有一层是可变类型数据,所有层都拷贝,保证数据独立
1 import copy 2 3 # 浅拷贝 4 copy.copy() 5 list.copy() 6 dict.copy() 7 d = c[:] # 切边能拷贝一个列表 8 9 # 深拷贝 10 copy.deepcopy()
两者主要的区别在于,array(默认)复制一份对象,asarray不会执行这一动作。
1 def asarray(a, dtype=None, order=None): 2 return array(a, dtype, copy=False, order=order)
标签:array 技术分享 list nump src jpg 数据结构 复制 技术
原文地址:https://www.cnblogs.com/lzc978/p/10105024.html