深拷贝浅拷贝

直接赋值:其实就是对象的引用,存储的是父对象的一个内存地址,相当于给对象起了一个别名。属于浅拷贝

浅拷贝(copy):虽然内存地址与父对象不一致,但是还是浅拷贝,只拷贝父对象,父对象内部的子对象不发生改变,例如多维数组,外部元素发生变化,但是数组内子数组的元素不发生变化。

深拷贝:copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。

import copy

l = [1,1,2,3,4,5,6,7,8,[1,2,3]]

#浅拷贝和深拷贝

# l2 = l #浅拷贝,内存地址不变,内存地址变了的也不一定就是深拷贝

# l2 = l.copy()#浅拷贝

#l2 = copy.copy(l)#浅拷贝

#l2 = l[:] #浅拷贝

l2 = copy.deepcopy(l) #深拷贝

l2[-1][1]="zengruotian"

print(l)

print(l2)

#循环删list

# l2 = [1,1,2,3,4,5,6,7,8]

    # 0 1 2 3 4 5 6 7 8

# for i in l2:

#    if i %2 != 0:

#        l.remove(i)

#

# print(l)

#正在循环的list,删里面的元素会导致下标错乱,取值有误

#1 /2

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容