Cómo comprobar si una variable es un conjunto (set) en Python

PythonPythonBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderás cómo identificar si una variable es un conjunto (set) en Python. Comenzarás por entender las características fundamentales de los conjuntos, incluyendo su naturaleza desordenada y la unicidad de sus elementos. A través de ejercicios prácticos, crearás conjuntos utilizando tanto llaves curvas como el constructor set(), y explorarás operaciones comunes de conjuntos, como agregar y eliminar elementos, así como verificar la pertenencia.

Luego, el laboratorio te guiará en el uso de la función type() y la función isinstance() para determinar si una variable es realmente un conjunto. Al final de este laboratorio, estarás equipado con el conocimiento y las habilidades para identificar con confianza los conjuntos en tu código Python.

Comprender los conjuntos (Sets)

En este paso, aprenderás sobre los conjuntos (sets) en Python. Los conjuntos son colecciones desordenadas de elementos únicos. Esto significa que un conjunto no puede contener valores duplicados y no se garantiza el orden de los elementos en un conjunto. Los conjuntos son útiles para realizar operaciones matemáticas de conjuntos, como unión, intersección y diferencia.

Comencemos creando un conjunto. Puedes crear un conjunto utilizando llaves curvas {} o el constructor set().

  1. Abre el editor de VS Code en el entorno de LabEx.

  2. Crea un nuevo archivo llamado sets_example.py en el directorio ~/project.

    ## Create a set using curly braces
    my_set = {1, 2, 3, 4, 5}
    print(my_set)
    
    ## Create a set using the set() constructor
    another_set = set([3, 4, 5, 6, 7])
    print(another_set)
  3. Ejecuta el script utilizando el comando python en la terminal:

    python ~/project/sets_example.py

    Deberías ver la siguiente salida:

    {1, 2, 3, 4, 5}
    {3, 4, 5, 6, 7}

Ahora, exploremos algunas operaciones comunes de conjuntos.

  1. Agrega el siguiente código a tu archivo sets_example.py:

    ## Add an element to a set
    my_set.add(6)
    print(my_set)
    
    ## Remove an element from a set
    my_set.remove(1)
    print(my_set)
    
    ## Check if an element is in a set
    print(3 in my_set)
    print(1 in my_set)
  2. Ejecuta el script nuevamente:

    python ~/project/sets_example.py

    Deberías ver una salida similar a esta:

    {1, 2, 3, 4, 5, 6}
    {2, 3, 4, 5, 6}
    True
    False

Los conjuntos son especialmente útiles para eliminar elementos duplicados de una lista.

  1. Agrega el siguiente código a tu archivo sets_example.py:

    ## Create a list with duplicate elements
    my_list = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]
    print(my_list)
    
    ## Convert the list to a set to remove duplicates
    unique_elements = set(my_list)
    print(unique_elements)
  2. Ejecuta el script:

    python ~/project/sets_example.py

    La salida debería ser:

    [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]
    {1, 2, 3, 4}

Como puedes ver, el conjunto unique_elements contiene solo los elementos únicos de la lista original.

Usar type() para identificar

En este paso, aprenderás cómo usar la función type() en Python para identificar el tipo de datos de una variable. Comprender los tipos de datos es crucial para escribir código correcto y eficiente.

La función type() devuelve el tipo de un objeto. Veamos cómo funciona con diferentes tipos de datos.

  1. Abre el editor de VS Code en el entorno de LabEx.

  2. Crea un nuevo archivo llamado type_example.py en el directorio ~/project.

    ## Check the type of an integer
    x = 10
    print(type(x))
    
    ## Check the type of a float
    y = 3.14
    print(type(y))
    
    ## Check the type of a string
    z = "Hello"
    print(type(z))
    
    ## Check the type of a boolean
    a = True
    print(type(a))
    
    ## Check the type of a list
    b = [1, 2, 3]
    print(type(b))
    
    ## Check the type of a tuple
    c = (1, 2, 3)
    print(type(c))
    
    ## Check the type of a set
    d = {1, 2, 3}
    print(type(d))
    
    ## Check the type of a dictionary
    e = {"name": "Alice", "age": 30}
    print(type(e))
  3. Ejecuta el script utilizando el comando python en la terminal:

    python ~/project/type_example.py

    Deberías ver la siguiente salida:

    <class 'int'>
    <class 'float'>
    <class 'str'>
    <class 'bool'>
    <class 'list'>
    <class 'tuple'>
    <class 'set'>
    <class 'dict'>

La salida muestra el tipo de datos de cada variable. Por ejemplo, <class 'int'> indica que la variable es un entero, y <class 'str'> indica que la variable es una cadena de texto.

Comprender el tipo de datos de una variable es importante porque determina qué operaciones se pueden realizar en esa variable. Por ejemplo, se pueden realizar operaciones aritméticas en enteros y números de punto flotante, pero no en cadenas de texto.

Veamos un ejemplo de cómo se puede usar la función type() para verificar si una variable es de un tipo específico antes de realizar una operación.

  1. Agrega el siguiente código a tu archivo type_example.py:

    ## Check if a variable is an integer before adding 5 to it
    num = 10
    if type(num) == int:
        result = num + 5
        print(result)
    else:
        print("Variable is not an integer")
    
    ## Check if a variable is a string before concatenating it with another string
    text = "Hello"
    if type(text) == str:
        greeting = text + ", World!"
        print(greeting)
    else:
        print("Variable is not a string")
  2. Ejecuta el script nuevamente:

    python ~/project/type_example.py

    Deberías ver la siguiente salida:

    15
    Hello, World!

En este ejemplo, la función type() se utiliza para verificar si la variable num es un entero y la variable text es una cadena de texto antes de realizar las operaciones de suma y concatenación, respectivamente.

Confirmar con isinstance()

En este paso, aprenderás cómo usar la función isinstance() en Python para confirmar si un objeto es una instancia de una clase o tipo particular. Esta es una forma más robusta y recomendada de verificar tipos de datos en comparación con el uso de type().

La función isinstance() toma dos argumentos: el objeto a verificar y la clase o tipo contra el cual se va a verificar. Devuelve True si el objeto es una instancia de la clase o tipo especificado, y False en caso contrario.

  1. Abre el editor de VS Code en el entorno de LabEx.

  2. Crea un nuevo archivo llamado isinstance_example.py en el directorio ~/project.

    ## Check if a variable is an integer
    x = 10
    print(isinstance(x, int))
    
    ## Check if a variable is a float
    y = 3.14
    print(isinstance(y, float))
    
    ## Check if a variable is a string
    z = "Hello"
    print(isinstance(z, str))
    
    ## Check if a variable is a boolean
    a = True
    print(isinstance(a, bool))
    
    ## Check if a variable is a list
    b = [1, 2, 3]
    print(isinstance(b, list))
    
    ## Check if a variable is a tuple
    c = (1, 2, 3)
    print(isinstance(c, tuple))
    
    ## Check if a variable is a set
    d = {1, 2, 3}
    print(isinstance(d, set))
    
    ## Check if a variable is a dictionary
    e = {"name": "Alice", "age": 30}
    print(isinstance(e, dict))
  3. Ejecuta el script utilizando el comando python en la terminal:

    python ~/project/isinstance_example.py

    Deberías ver la siguiente salida:

    True
    True
    True
    True
    True
    True
    True
    True

Todas las variables son instancias de los tipos que verificamos, por lo que isinstance() devolvió True en cada caso.

isinstance() es especialmente útil cuando se trata de herencia. Si una clase hereda de otra clase, un objeto de la subclase también se considera una instancia de la clase padre.

  1. Agrega el siguiente código a tu archivo isinstance_example.py:

    class Animal:
        pass
    
    class Dog(Animal):
        pass
    
    my_dog = Dog()
    
    ## Check if my_dog is an instance of Dog
    print(isinstance(my_dog, Dog))
    
    ## Check if my_dog is an instance of Animal
    print(isinstance(my_dog, Animal))
  2. Ejecuta el script nuevamente:

    python ~/project/isinstance_example.py

    Deberías ver la siguiente salida:

    True
    True

En este ejemplo, Dog hereda de Animal. Por lo tanto, my_dog es una instancia tanto de Dog como de Animal.

En general, se prefiere el uso de isinstance() en lugar de type() porque maneja correctamente la herencia y es más flexible.

Resumen

En este laboratorio, aprendiste sobre los conjuntos (sets) en Python, que son colecciones desordenadas de elementos únicos. Creaste conjuntos utilizando llaves {} y el constructor set(), y realizaste operaciones comunes de conjuntos como agregar y eliminar elementos.

Además, exploraste cómo se pueden utilizar los conjuntos para eliminar elementos duplicados de una lista convirtiendo la lista en un conjunto. También aprendiste cómo verificar la pertenencia a un conjunto utilizando el operador in.