Python--is和==及深拷贝和浅拷贝的区别

本文介绍了Python中is和==的用法区别,is主要判断对象的内存地址是否相同,而==则比较值和数据类型。接着详细探讨了浅拷贝(copy.copy)和深拷贝(copy.deepcopy)的不同之处,特别是在面对不同数据类型组合时的行为差异,包括不可变数据类型和可变数据类型的组合情况。
摘要由CSDN通过智能技术生成

一.is和==的区别
== 用于判断引用变量的值是否相等。只判断值和数据类型
is 用于判断两个变量引用对象是否为同一个,就是所引用的对象的内存地址是否一致

>>> a = '1'
>>> b = 1
>>> a == b  ##a、b的变量类型不同,则判断为假
False
>>> a = '1'
>>> b = a  ##将a赋值给b,此是b的值及类型与a相同,并且引用的对象为同一个‘1’则返回为True
>>> a is b
True
>>> a
'1'
>>> b
'1'
>>> li = [1,2,3]
>>> li1 = li  ##将li赋值给li1,则li1与li的值及数据类型相同,同时两列表引用同一个列表
>>> li1
[1, 2, 3]
>>> id(li)
139695752176392  ##两列表指定的为同一内存地址
>>> id(li1)
139695752176392
>>> li2 = li.copy()  ##li2与li类型数据相同但内存地址不同
>>> li2
[1, 2, 3]
>>> id(li1)
139695752176392
>>> li == li1
True
>>> li1 == li2
True
>>> li2 is li
False
>>> li2 is li1
False
>>> li1 is li
True

二.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值