python-sets

Qué son y cómo usar los Sets en Python

Los Sets, o conjuntos, son estructuras de datos que nos permiten almacenar colecciones de elementos únicos y no ordenados.

Esto significa que no puede haber duplicados en un set y los elementos no están ordenados por posición

Características de los sets:

  • Elementos Únicos: Los sets no pueden contener elementos duplicados, por lo que cada elemento es único
  • Desordenados: Los elementos en un set no tienen un orden específico y no se garantiza que se mantenga el orden en el que fueron agregados

Creación de Sets

Los conjuntos en Python se pueden crear utilizando llaves {}.

En este caso, se enumeran los elementos separados por comas dentro de las llaves para inicializar el conjunto.

mi_set = {1, 2, 3}

Crear un Set con la función set()

También es posible crear conjuntos utilizando la función set(). Se pasa una lista como argumento a la función set(), y la función crea un conjunto con los elementos de esa lista.

mi_otro_set = set([1, 2, 3])

Por ejemplo, aquí hemos creado un Set {1, 2, 3} a partir de una Lista que contenía [1, 2, 3].

Operaciones con Sets

Agregar elementos

Los conjuntos en Python tienen el método add() que se utiliza para agregar un solo elemento al conjunto.

mi_set.add(6)  # Agrega el elemento 6 al set

Eliminar elementos

Los conjuntos en Python tienen el método remove() que se utiliza para eliminar un elemento específico del conjunto.

Además, el método discard() también se puede utilizar para eliminar un elemento, pero no arrojará un error si el elemento no está presente en el conjunto.

mi_set.remove(3)  # Elimina el elemento 3 del set
mi_set.discard(2)  # Elimina el elemento 2 si está presente

Unión de Sets

La unión de conjuntos se puede realizar utilizando el método union() o el operador |. Esto crea un nuevo conjunto que contiene todos los elementos de ambos conjuntos originales, eliminando duplicados.

union_set = mi_set.union(mi_otro_set)  # Une los dos sets en uno nuevo
union_set = mi_set | mi_otro_set  # Lo mismo utilizando el operador |

Intersección de Sets

La intersección de conjuntos se puede realizar utilizando el método intersection() o el operador &. Esto crea un nuevo conjunto que contiene solo los elementos que están presentes en ambos conjuntos originales.

interseccion_set = mi_set.intersection(mi_otro_set)  # Obtiene la intersección de los sets
interseccion_set = mi_set & mi_otro_set  # Lo mismo utilizando el operador &

Diferencia de Sets

La diferencia entre conjuntos se puede calcular utilizando el método difference() o el operador -. Esto crea un nuevo conjunto que contiene solo los elementos que están presentes en el primer conjunto pero no en el segundo.

diferencia_set = mi_set.difference(mi_otro_set)  # Obtiene la diferencia entre los sets
diferencia_set = mi_set - mi_otro_set  # Lo mismo utilizando el operador -

Ejemplos prácticos

Eliminación de duplicados en listas

Para eliminar duplicados de una lista en Python, se puede convertir la lista a un conjunto utilizando la función set().

lista_con_duplicados = [1, 2, 3, 4, 1, 2, 5]
conjunto_sin_duplicados = set(lista_con_duplicados)

Los Sets en Python no permiten elementos duplicados, por lo que al convertir la lista a un conjunto, automáticamente se eliminarán los duplicados.

Verificación de pertenencia

Para verificar si un elemento está presente en un conjunto, se puede utilizar la expresión in. Esta expresión devuelve True si el elemento está presente en el conjunto y False si no lo está.

if 3 in mi_set:
    print("El elemento 3 está presente en el set.")

Operaciones de conjuntos

Python ofrece varios métodos integrados para realizar operaciones de conjuntos, como unión, intersección y diferencia.

set1 = {1, 2, 3}
set2 = {3, 4, 5}

# Unión de sets
union = set1.union(set2)  # Resultado: {1, 2, 3, 4, 5}

# Intersección de sets
interseccion = set1.intersection(set2)  # Resultado: {3}

# Diferencia de sets
diferencia = set1.difference(set2)  # Resultado: {1, 2}

Estas operaciones se pueden realizar utilizando métodos de conjuntos como union(), intersection() y difference() (que hemos visto anteriormente).