深拷贝与浅拷贝


# ################ 第一种 #########################

# '''==与is
# ==:判断值是否相等
# is:判断内存地址是否相同
# # pycharm 解释器 作了优化所以看不出
# '''
# 小整数对象:[-5,256]
# 预置在内存中的数据,引用小整数的变量的地址都是一样的,说明引用的是同一片地址
# '''
#
# # 前提是 列表中要有嵌套【至少2层列表】
# # 其他语言 java c++ ;【0,1,2,3,4,5,【6,7,8】】浅拷贝是只拷贝值 不开辟新的内存地址,也就是说:拷贝的新列表,内部元素的值还是指向原来列表元素值的值。
深拷贝才开辟新的内存地址,python中 深浅拷贝 都 开辟 新的内存地址

其他语言 浅拷贝
其他语言 深拷贝

 
# python中
# #浅拷贝   值一样  地址不一样,在内存中重新开辟了一个空间,生成新的内存空间,再赋值
# # 只拷贝了元素的引用,

比如:一个二维列表 list=【1,2,3,4,【5,6,7】】
内存分析:变量被创建,是一个列表,在内存中开辟了一个内存空间,列表list有一个总地址,无论内部元素怎么变,总地址都不会变。
列表内的内部元素,其实存放的内存地址即:值的所对应的内存地址。内存地址指向值,值对应内存地址。

浅拷贝

深拷贝

 

# ################ 第二种#########################
# 浅拷贝:只拷贝第一层。
# 深拷贝:拷贝嵌套层次中的所有可变类型。
# ------ 特殊情况 tuple string


前提:浅拷贝只拷贝第一层,深拷贝内外层都拷贝
可变类型,深浅拷贝都一样,内存地址都一样,都指向相同的数值
不可变类型,深浅拷贝都一样,都开辟新的内存空间,地址不一样

 

转载于:https://www.cnblogs.com/yx12138/p/10655782.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值