python-day04--is和==的区别,深浅拷贝

一、is和==的区别

id():在内存中存储的位置
type():变量的类型
value:变量的值

**is和==的区别:**
is:type,value,id   #判断类型,值,id
==:type,value   #只判断类型和值

实验:
在这里插入图片描述

二、深浅拷贝

***当深拷贝和浅拷贝,针对的对象是不可变数据类型时,两者效果相同
***当深拷贝和浅拷贝,针对的对象是可变数据类型时,两者才有区别。

如果copy.copy()拷备的是元组,它不会进行浅拷备,仅仅是一个指向
因为元组是不可变数类型,那么就意味着数据一定不能修改,因此copy.copy()
的时候,它会自动判断是指向
如果copy.copy() copy.deepcopy()对一个全部是不可变数据类型
的数据进行数据拷备的时候哦,那么它们的结果都是相同的

面试常问:
请简述赋值, 深拷贝和浅拷贝的区别?(python中如何拷贝一个对象?)
1.直接赋值(list11 = list),只传递对象的引用,list11指向list的内存地址。因此当list内容发生改变时,list11也发生改变。
2.浅拷贝(list555=copy.copy(list)):list555和list内存地址空间不一样。但是,子对象的内存地址空间相同。因此,原始数据发生改变时,list55中子对象也改变。
3.深拷贝(import copy list888=copy.deepcopy(list)  ):list888和list的内存地址空间不同,也包括子对象的拷贝,所以原始数据发生改变时list888中子对象不会发生改变。

注:所有数据类型和布尔类型,str是不可变数据类型
list是可变数据类型

实验1:全部不可变类型
在这里插入图片描述
实验2:存在可变类型(元组里套列表)
在这里插入图片描述
实验3:全部可变类型
在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值