
Python 有两个用于相等比较的运算符,“is”和“==”(等于)。在本文中,我将通过一些简单的示例介绍两者之间的区别以及何时使用它们。

很多时候,我们在 Python 中做相等比较时,想知道应该使用“is”还是“==”进行检查。
# 使用“is”if a is b: ...# 使用“==”if a == b: ...如果你是 Python 初学者,这可能会有点令人困惑,并且很容易认为两者可以互换使用。那么,有什么区别呢?
is 运算符is 运算符检查两个元素是否指向同一对象。
让我们在 python 控制台中举例说明。
>>> a = []>>> b = []>>> c = a>>> a is bFalse>>> b is cFalse>>> a is cTrue我们声明了三个变量并为其赋值。并且都是赋值空列表,最终,我们可以看到所有三个变量都包含一个空列表。
尽管所有三个变量都包含一个空列表,看起来相同,但变量 a 和 b 不指向同一个对象,变量 a 和 c 指向同一个对象。实际上,is 运算符的作用是用来检查对象的标示符是否一致,也就是比较两个对象在内存中的地址是否一样。
>>> a = []>>> b = []>>> c = a>>> id(a)60540328>>> id(b)59352968>>> id(c)60540328>>>变量 a 和 c 的标识符(内存中的地址)都是 60540328 ,变量 b 的标识符是 59352968。具有相同值的对象通常存储在不同的内存地址中。
== 运算符== 运算符检查两个元素是否包含相等的值。它们是否指向同一对象在这里并不重要。
>>> a = []>>> b = []>>> c = a>>> a == bTrue>>> b == cTrue>>> a == cTrue“is”称为标识运算符。“==”称为相等运算符。因此,如果要检查元素是否指向同一对象,请使用“is” 。如果只比较值是否相等,请使用“==”。
❝
文章创作不易,如果您喜欢这篇文章,请关注、点赞并分享给朋友。如有意见和建议,请在评论中反馈!
❞