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
Si quieres aprender sobre Qué es un Hashset
consulta el Curso de Introducción a la Programación leer más
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).