python里两个等号代表什么,python中的一个等号和两个等号
Python有两个运算符用于相等比较,“is”和“==”(等于)。在这篇文章中,我将带你了解Python中“is”和“==”的区别,并通过几个简单的例子来说明何时应该使用它们。让我们先来看一个场景:
我小时候,我们邻居有两只双胞胎猫。
这两只猫长得一模一样——同样的炭灰色毛发,同样敏锐的绿色眼睛。抛开一些性格怪癖,从外表是无法分辨的。但它们实际上是两种不同的猫,两种不同的生物,尽管它们看起来完全一样。
就像等式和恒等式的含义不同一样,理解Python中的运算符“is”和“==”非常重要。
“==”更侧重于检测相等性:如果这些猫是Python对象,我们用“==”进行比较,会得到“两只猫相等”。
“是”重在比较相同:如果我们把它们和“是”比较,会得到“这是两只不同的猫”。
在我用猫来比喻一切之前,让我们先来看看一些真实的Python代码。
首先,我们将创建一个新的列表对象并将其命名为A,然后定义另一个变量B来指向同一个列表对象:
形状\*合并格式
让我们来看看这两个变量。我们可以看到它们指向同一个列表。
形状\*合并格式
因为两个列表对象看起来一样,当我们使用“==”操作符比较它们的相等性时,我们将得到预期的结果:
形状\*合并格式
然而,这并没有告诉我们A和B是否真的指向同一个对象。当然,我们知道它们指向同一个对象,因为我们之前给它们分配了同一个对象,但是假设我们不知道我们会发现什么?
然后用“is”操作符比较这两个变量,这将证明这两个变量指向同一个list对象:
形状\*合并格式
让我们看看当我们创建list对象的相同副本时会发生什么。我们可以通过调用现有列表上的list()来创建一个名为C的副本:
形状\*合并格式
您将再次看到,我们刚刚创建的新列表看起来与A和B指向的列表对象相同:
形状\*合并格式
这才是有趣的地方。如果我们用“==”运算符比较list copy C,初始化list A,你希望看到什么答案?
形状\*合并格式
嗯,我希望这是你所期望的。这个结果告诉我们,C和A有相同的内容。Python认为它们是相等的,但是它们指向同一个对象吗?让我们来看看is运算符:
形状\*合并格式
我们得到了不同的结果。Python告诉我们,C和A指向两个不同的对象,即使它们的内容是相同的。
因此,为了便于回顾,我们使用以下两个简短的定义来区分“is”和“==”:
如果两个变量指向同一个(同一个)对象,则“is”表达式为真。
如果变量引用的对象相等(内容相同),“==”表达式的值为真。
只要记住这一点,当你需要在Python中使用is和==的时候,你就会想到一对双胞胎猫(狗也一样),你就知道用哪一个了。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。