Operadores de identidad

Esta categoría de operadores comprueban si las dos variables representan el mismo objeto, lo que no es igual que decir que toman el mismo valor. Los dos operadores de identidad disponibles son is y not is. Veamos algunos ejemplos:

Que dos variables tomen el mismo valor las convierte en iguales, pero no necesariamente en idénticas. Si estamos comparando variables enteras, si son iguales, también son idénticas:

Operadores de identidad

Esto es así porque el número 3 al que "apuntan" ambas variables es el mismo. No hay más que un "número tres" en Python. No sabemos dónde se almacena, pero allí donde esté, es único.

Pero si estamos trabajando con listas, por ejemplo, la cosa cambia:

Operadores de identidad

En este ejemplo vemos cómo m y n son iguales (ambas variables representan listas que contienen los mismos elementos) pero no son idénticas, porque los elementos que forman la variable m están contenidos en una parte de la memoria del ordenador, y los elementos que forman la variable n están contenidos en otra parte de la memoria del ordenador. Coincide que en ambas partes de la memoria están almacenados los mismos valores, pero se trata de diferentes objetos en diferentes zonas de la memoria al fin y al cabo.

Sin embargo, véase el siguiente ejemplo:

Operadores de identidad

Aquí también estamos trabajando con listas, pero ahora m y n son iguales e idénticas ¿por qué? Porque cuando ejecutamos la instrucción n = m estamos diciéndole a Python "haz que n apunte al mismo objeto al que representa m". Podríamos decir que la variable n es un alias de m.