DEV Community

Cover image for What is the difference between Python's equality operators?
Isabelle M.
Isabelle M.

Posted on • Originally published at 30secondsofcode.org

1

What is the difference between Python's equality operators?

Python provides two very similar equality operators used for comparisons:

  • The double equals (==), also known as the equality operator
  • The is keyword, also known as the identity operator

Although similar to one another, the double equals (==) and the is keyword are used for different comparison purposes and yield different results.

The main difference between the two is that the is keyword checks for reference equality while the double equals (==) operator checks for value equality. In other words, is will return True if two variables both refer to the same object in memory (aka. identity), whereas the double equals operator will evaluate to True if the two objects have the same value.

Here are some examples to clear up any confusion:

a = [1, 2, 3]
b = a
c = [x for x in a]

print([
  a == b, # True
  a is b, # True
  a == c, # True
  a is c  # False
])

x = 'hi'
y = x
z = 'HI'.lower()

print([
  x == y, # True
  x is y, # True
  x == z, # True
  x is z  # False
])
Enter fullscreen mode Exit fullscreen mode

Do you like short, high-quality code snippets and articles? So do we! Visit 30 seconds of code for more articles like this one or follow us on Twitter for daily JavaScript, React and Python snippets! 👨‍💻

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay