Link Search Menu Expand Document

Operadores de membresía

Los operadores de membresía o membership operators son operadores que nos permiten saber si un elemento esta contenido en una secuencia. Por ejemplo si un número está contenido en una lista de números.

OperadorNombreEjemplo
inTrue si el elemento esta contenidoxxx
not inFalse si el elemento no esta contenidoxxx

Operador in

El operador in nos permite ver si un elemento esta contenido dentro de una secuencia, como podría ser una lista. En el siguiente ejemplo se ve un caso sencillo donde se verifica si 3 esta contenido en la lista [1, 2, 3]. Como efectivamente lo está, el resultado es True.

print(3 in [1, 2, 3])
# True

Vamos a complicar las cosas un poco y explorar los límites del operador. Que pasaría si intentásemos hacer algo como lo que se ve en el siguiente ejemplo. Podría ser lógico pensar que 3 in 3 sería True, porque realmente si que parece que el 3 esta contenido en el segundo 3. Pues no, el siguiente código daría un error, diciendo que la clase int no es iterable. En otros capítulos exploraremos más acerca de esto. Por ahora nos basta con decir que el elemento a la derecha del in debe ser un objeto tipo lista

#print(3 in 3) # Error! TypeError

Vamos a darle una última vuelta de tuerca. Podríamos también ver si una lista está contenida en otra lista. En este caso, la lista de la derecha del in es una lista embebida dentro de otra lista. Como [1, 2] está dentro de la segunda lista, el resultado es True

print([1, 2] in [4, [1, 2], 7])
# True

Operador not in

Por último, el operador not in realiza lo contrario al operador in. Verifica que un elemento no está contenido en otra secuencia. En el siguiente ejemplo se puede ver como 3 no es parte de la secuencia, por lo que el resultado es False

print(3 not in [1, 2, 4, 5])
# True

La verdad que ambos operadores in y not in son muy útiles y nos ahorran mucho trabajo. Es importante tenerlo en cuenta, porque no otros lenguajes de programación no existen tales operadores, y debemos escribir código extra para obtener tal funcionalidad. Una forma de implementar nuestro operador in y is not con una función sería la siguiente. Simplemente iteramos la lista y si encontramos el elemento que estábamos buscando devolvemos True, de lo contrario False.

a=3
lista=[1, 2, 3, 4, 5]

# Función que implementa "is" y "is not"
def estaContenido(a, lista):
for l in lista:
if a==l:
return True
return False

print(estaContenido(a, lista))

Para saber más: Te dejamos un enlace a la documentación oficial acerca de los operadores de membresía.