Let's figure out how comparison operators in Python differ and in what cases you should use each of them.
== operators in Python perform similar functions but work slightly differently. If you're new to using comparisons in code, it's worth understanding the difference. This will help you resort to refactoring and debugging less often.
== operator tests whether the values of two operands are equal. In this context, it compares variables that occupy different memory cells.
>>> 1 == 1 True >>> 'abc' == 'abc' True >>> [1, 2, 3] == [1, 2, 3] True
This operator can be used to compare almost any object: strings, lists, dictionaries, and tuples. This makes it a very common "guest" in if-else statements. In addition, when, after a week, your code becomes more difficult to understand, just two characters in the statement make hundreds of lines long easier to read.
is() checks whether two operands are the same object, that is, whether they point to the same object in memory.
>>> a = [1, 2, 3] >>> b = a >>> a is b True >>> a = [1, 2, 3] >>> b = [1, 2, 3] >>> a is b False
In the first case,
b point to the same list, so
a is b returns True. However, in the second case, even though
b have identical values, they point to different lists, so
a is b returns False.
is in Python is used to check the identity of objects. It can be useful when you need to make sure that two references point to the same object in memory and don't just have the same value. However, in most cases, using
== is sufficient.