Python之is与==的区别详解
Python有两个用于相等比较的运算符,“is”和“==”(等于)。在这篇文章中,我将教你们两者之间的区别,以及通过几个简单地例子说明什么时候使用它们。
当我还是一个孩子的时候,我们的邻居家有两只双胞胎猫。
这两只猫看起来看起来完全一样 - 同样的木炭毛,同样敏锐的绿眼睛。撇开一些个性怪癖,单从它们的外表根本无法区分它们。但他们确确实实是两只不同的猫,两个不同的生物,尽管它们看起来完全一样。
就如相等和相同在意思上是有差异的,理解这种差异对理解Python中的操作符“is”和“==”是很重要的。
“==”更侧重于检测相等:如果这些猫是Python对象,我们用“==”比较它们,我们会得到“两只猫是相等的”。
“is”侧重于比较相同:如果我们用“is”比较它们,我们会得到“这是两只不同的猫”。
在我把所有的东西都用猫作为类比之前,让我们来看看一些真正的Python代码。
首先,我们将创建一个新的列表对象并将其命名为a,然后定义另一个变量b指向同一列表的对象:
文章图片
我们来看看这两个变量,我们可以看到它们指向相同的列表。
文章图片
因为两个列表对象看起来相同,所以当我们使用“==”运算符比较它们的相等性时,我们会得到预期的结果:
文章图片
然而,这并没有告诉我们a和b是否真的指向同一个对象。当然,我们知道它们是指向同一个对象的,因为我们之前给它们分配了相同的对象,但是假设我们不知道我们会发现什么?最后,如果你的时间不是很紧张,并且又想快速的提高,最重要的是不怕吃苦,建议你可以联系维:762459510 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~
那么将两个变量用“is”操作符进行比较,这会证明两个变量是指向同一个列表对象的:
文章图片
我们来看看当我们创建列表对象的相同副本时会发生什么,我们可以通过在现有列表上调用list来创建一个名为c的副本:
文章图片
您将再次看到我们刚刚创建的新列表看起来与a和b指向的list对象相同:
文章图片
这就是有趣的地方,如果我们使用“==”运算符来比较列表副本c和初始化列表a,您希望看到什么答案?
文章图片
好吧,我希望这是您所期待的,这个结果告诉我们c和a有相同的内容,它们被Python认为是相等的,但它们是否指向同一个对象?我们来看看is操作符:
文章图片
以上我们得到了不同的结果。Python告诉我们,c和a指向两个不同的对象,尽管它们的内容是相同的。最后,如果你的时间不是很紧张,并且又想快速的提高,最重要的是不怕吃苦,建议你可以联系维:762459510 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~
所以,回顾一下,我们区分“is”和“==”用以下两个简短的定义:
- 如果两个变量指向同一个(相同的)对象,则“is”表达式为True。
- 如果变量所引用的对象是相等的(有相同的内容),则“==”表达式的值为True。
【Python之is与==的区别详解】到此这篇关于Python之is与==的区别详解的文章就介绍到这了,更多相关Python之is与==的区别内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- Docker应用:容器间通信与Mariadb数据库主从复制
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- PMSJ寻平面设计师之现代(Hyundai)
- 太平之莲
- 第326天
- Shell-Bash变量与运算符
- 闲杂“细雨”
- 七年之痒之后
- 深入理解Go之generate