Los sets en Python son una estructura de datos que permite almacenar elementos únicos y no ordenados. A diferencia de las listas o tuplas, los sets no admiten elementos duplicados y no tienen un orden específico. En este artículo, exploraremos las aplicaciones prácticas y eficientes de los sets en tus proyectos de Python.
Un set en Python se define utilizando llaves {}
y los elementos separados por comas. Veamos un ejemplo:
frutas = {"manzana", "naranja", "plátano"}
En este caso, hemos creado un set llamado frutas
con tres elementos únicos: "manzana", "naranja" y "plátano". Cabe destacar que los sets no admiten elementos duplicados, por lo que si intentamos agregar un elemento duplicado, simplemente se ignorará.
Una de las aplicaciones más comunes de los sets es eliminar elementos duplicados de una lista. Supongamos que tenemos una lista de números con elementos duplicados y queremos obtener una lista sin duplicados. Podemos utilizar un set para lograr esto de manera eficiente. Veamos un ejemplo:
numeros = [1, 2, 3, 4, 4, 5, 5, 6]
numeros_sin_duplicados = list(set(numeros))
print(numeros_sin_duplicados)
El resultado será: [1, 2, 3, 4, 5, 6]
. Como los sets no admiten elementos duplicados, al convertir el set nuevamente a una lista, obtenemos una lista sin duplicados.
Los sets también son útiles para verificar si un elemento pertenece a un conjunto y realizar operaciones de conjuntos como la unión, intersección y diferencia. Veamos un ejemplo:
conjunto_a = {1, 2, 3, 4, 5}
conjunto_b = {4, 5, 6, 7, 8}
print(3 in conjunto_a) # Verificar si 3 pertenece al conjunto_a
union = conjunto_a.union(conjunto_b)
print(union) # Unión de conjunto_a y conjunto_b
interseccion = conjunto_a.intersection(conjunto_b)
print(interseccion) # Intersección de conjunto_a y conjunto_b
diferencia = conjunto_a.difference(conjunto_b)
print(diferencia) # Diferencia entre conjunto_a y conjunto_b
El resultado será:
True
{1, 2, 3, 4, 5, 6, 7, 8}
{4, 5}
{1, 2, 3}
Los sets también se pueden utilizar para filtrar elementos de una lista. Supongamos que tenemos una lista de productos y queremos obtener los productos únicos sin duplicados. Podemos utilizar un set para lograr esto. Veamos un ejemplo:
productos = ["manzana", "naranja", "manzana", "plátano", "naranja"]
productos_unicos = list(set(productos))
print(productos_unicos)
El resultado será: ["manzana", "naranja", "plátano"]
. Al convertir el set nuevamente a una lista, obtenemos los productos únicos sin duplicados.
Los sets en Python son eficientes para realizar operaciones de búsqueda y eliminación de elementos debido a su implementación interna utilizando una tabla hash. Esto significa que la búsqueda de un elemento en un set tiene una complejidad de tiempo promedio de O(1), lo que lo hace muy rápido incluso para conjuntos de datos grandes.
Sin embargo, es importante tener en cuenta que los sets no conservan ningún orden específico. Si necesitas mantener el orden de los elementos, deberías utilizar una lista o una tupla en su lugar.