我们都遇到过这样的情况,当我们在Python中解决一些问题时,我们必须比较两个对象。为此,我们中的许多人使用了==或is操作符。
但是,似乎我们很多人都不知道在什么情况下用哪个词。这篇文章将详细介绍二者的区别和联系,帮助大家更好地使用他们。
区别分析
我们先用双胞胎猫做一些类比。假设你有一对非常相似的双胞胎猫。它们有着同样炭黑色的皮毛和同样锐利的绿色眼睛。光看,我们无法分辨哪个是哪个。
现在,将Python中的== 和 is操作符带入这个例子。
==操作符通过检查相等性进行比较。如果这两个猫是两个Python对象,那么如果使用==操作符对它们进行比较,则返回' Both cats are Equal(两只猫相等) '作为答案。
is操作符通过检查标识来进行比较。如果我们用is来比较它们,我们会得到“两只猫不相等”作为答案。
为了真正理解这一点,我们将编写一些代码。
首先,我们将创建一个名为a的列表,其中包含元素[3、4、5],另一个列表b将指向列表a。
让我们检查一下这两个列表。我们可以看到,他们指向外观相同的列表。
因为这两个列表对象看起来相同,所以使用==操作符比较它们是否相等时将得到预期的结果。
然而,这并没有告诉我们a和b是否指向同一个物体。当然,我们知道它们是这样的,因为我们之前已经分配了它们,但是假设我们不知道——我们怎么知道呢?
答案是将两个变量与is操作符进行比较。这证实了两个变量实际上都指向一个列表对象。
现在,让我们使用list()创建另一个列表c,它包含列表a的元素。
如果我们看一下列表c,它看起来类似于由a和b指向的列表。
现在,我们将使用==和is操作符比较a和c。
这里,==操作符为真,因为它们都有相同的内容。
Python告诉我们c和a指向两个不同的对象,尽管它们的内容可能是相同的。
所以,为了总结一下,让我们试着把is和==之间的区别分解成两个简短的定义。
随着 5G、云计算、人工智能的高速发展,人与人、人与物、人与社会之间的内容表达...
环境:springboot2.3.9.RELEASE + redis3.2.100 Redis是一种基于客户端-服务端模...
著名的帕累托法则,即80/20定律,告诉我们:原因和结果、投入和产出、努力和报酬...
在 服务器租用 或 服务器托管 中,客户想管理服务器的时候还是得通过远程操控来...
虚拟主机 和 云服务器 哪个好?虚拟主机和 云服务器 都是搭 建网站 所需要的,就...
本文转载自微信公众号「五分钟学大数据」,作者园陌。转载本文请联系五分钟学大...
如果你看过比较优秀的 Python 开源框架,肯定见到过元类的身影。例如,在一个类...
新的MongoDB Atlas多云集群功能已于周二全面推出,并扩展了该公司现有的云数据库...
数据科学是截至近年来技术领域中很具热度的方向之一。如果您拥有数据科学或者相...
TOP云 12月30日讯,继2014年罗永浩发布了锤子手机Smartisan T1后,相关 域名 sma...