Comparación de objetos de Python: «es» vs «==»

Tanto «es» como «==» se utilizan para la comparación de objetos en Python. El operador “==” compara los valores de dos objetos, mientras que “es” comprueba si dos objetos son iguales (en otras palabras, dos referencias al mismo objeto).

# Python program to demonstrate working of 
# "=="
  
# Two different objects having same values
x1 = [10, 20, 30]
x2 = [10, 20, 30]
  
# Comparison using "==" operator
if  x1 == x2:
    print("Yes")
else:
    print("No")
Producción:

Yes

El operador “==” no nos dice si x1 y x2 realmente se refieren al mismo objeto o no. Usamos «es» para este propósito.

# Python program to demonstrate working of 
# "is"
  
# Two different objects having same values
x1 = [10, 20, 30]
x2 = [10, 20, 30]
  
# We get "No" here
if  x1 is x2:
    print("Yes")
else:
    print("No")
  
# It creates another reference x3 to same list.
x3 = x1
  
# So we get "Yes" here
if  x1 is x3:
    print("Yes")
else:
    print("No")
  
# "==" would also produce yes anyway
if  x1 == x3:
    print("Yes")
else:
    print("No")
Producción:

No
Yes
Yes
x1 = [10, 20, 30]
  
# Here a new list x2 is created using x1
x2 = list(x1)
  
# The "==" operator would produce "Yes"
if  x1 == x2:
    print("Yes")
else:
    print("No")
  
# But "is" operator would produce "No"
if  x1 is x2:
    print("Yes")
else:
    print("No")
Producción:

Yes
No


Conclusión:

  • “is” devuelve True si dos variables apuntan al mismo objeto.
  • “==” devuelve True si dos variables tienen los mismos valores (o contenido).

Publicación traducida automáticamente

Artículo escrito por Sabya_Samadder y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *