Operadores membresía, está o no está

Los operadores de membresía en Python permiten saber si un elemento esta contenido en una secuencia, y son el in y not in.

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.

Operador Nombre Ejemplo
in True si el elemento esta contenido xxx
not in False si el elemento no esta contenido xxx

 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.

Si quieres saber más acerca de otros operadores, aquí te dejamos algunos enlaces:

¡Deja un comentario!

avatar
  Subscribe  
Notify of