在Python中如何使用“is”和“==”进行对象比较

云课堂学Python 2024-04-10 00:04:10

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” 。如果只比较值是否相等,请使用“==”。

文章创作不易,如果您喜欢这篇文章,请关注、点赞并分享给朋友。如有意见和建议,请在评论中反馈!

0 阅读:0

云课堂学Python

简介:感谢大家的关注