Python中”==”和 “is “运算符的区别
在Python中比较对象时,身份操作符通常用于平等操作符==的地方。在实践中,当试图比较数据时,使用is很少是一个好主意。Python中的身份操作符(is)和平等操作符(==)彼此略有不同。当我们使用Py is运算符来比较数字时,我们的代码可能会运行正常,直到它不正常为止。据报道,Python的is运算符比==运算符快,或者我们可能只是认为它看起来更像Pythonic。重要的是要记住,这些运算符不一定以相同的方式行动。
什么是 == 操作符
Python 的平等运算符 (==) 被用来根据对象的值进行比较。它在左边的对象上调用类函数 eq(),它描述了判断平等的标准。但通常情况下,这些限制被表述为:如果两个对象的值相同,平等运算符==最佳响应,如果它们的值不同,则为假。==运算符比较两个对象的值,而is运算符检查两个对象的同一性。等于和相同的含义并不一样。当试图理解Python的is和==比较运算符的行为时,这个区别是至关重要的。
Python 的 is 运算符确定两个或多个变量是否指向同一个内存项,而不是 == 运算符,它比较的是两个对象的值和相等。这意味着,除了我们与None比较时,你几乎应该总是利用等价运算符==和!=。 每当两个算术运算的值相等时,就会采用==运算符,使条件为真。
什么是 “is “运算符
在Python中使用身份运算符(is,is not),我们可以比较对象。如果运算符两边的变量正好指向同一事物,那么is运算符的评估就是真的。否则,它将给我们一个错误的评价。当沿着运算符两边的变量指向完全相同的对象时,is运算符的评价是真的。否则,它将为我们提供一个错误的评估。为了确定两个或多个变量是否与同一个对象有关,可以使用 “is “关键字。如果两个变量都是同一对象的一部分,它返回TRUE,否则返回FALSE。只有当变量被赋予一些值时,”是 “运算符才能正常工作。考虑一下下面的例子,它有两个空列表。在 Python 中,这两个不同的列表将分别指代一个不同的对象,在内存中有一个独特的位置。
当比较两个对象的身份时,我们利用 is 操作符。然而,如果我们想比较两个对象的值,我们使用 == 操作符。当试图理解Python中==运算符的应用和行为时,必须考虑到 “相同 “和 “相等 “的定义之间的区别。我们将在这篇文章中讨论Python的==和 “是 “运算符之间的区别。
为了进一步理解这一点,让我们看一个插图。
list_1 = ['a', 'b', 'c']
list_2 = list_1
list_3 = list(list_2)
print(list_1)
print(list_2)
print(list_3)
输出
['a', 'b', 'c'] ['a', 'b', 'c'] ['a', 'b', 'c']
print(list_1 == list_2)
print(list_1 == list_3)
输出
True
True
它将发生,因为列表1、2和3的值相等,使条件为真。
print(list_7 is list_8)
print(list_7 is list_9)
输出
True
False
在这里,我们可以看到语句(list 4 is list 6)是假的,因为list 4和list 6是指向两个不同的对象,即使它们都可以包含相同的信息。这使我们得出这样的结论:当两个变量都指向完全相同的对象时,将返回 “真”;而当可用变量所指向的对象相等时,”==”将返回 “真”。
当两个操作数的值几乎相同时,Python中使用==运算符。在这种情况下,情况就会变成真。当运算符两端的变量指向完全相同的对象时,is运算符的评价为真。否则,它将为我们提供一个错误的评估。