Saltar a contenido

Sets (Conjuntos): Unicidad y Matemáticas

Un Set en Python es una colección de elementos que tiene dos características fundamentales: no permite duplicados y no tiene un orden establecido. A diferencia de las listas, donde puedes tener el mismo nombre diez veces, en un set cada elemento es único.


Propiedades Técnicas de los Sets

Los sets se definen utilizando llaves { } (igual que los diccionarios, pero sin parejas clave-valor) o la función set().

1. Sin Duplicados (Unicidad)

Si intentas crear un set con elementos repetidos, Python los ignorará automáticamente. Esto es extremadamente útil para "limpiar" listas de datos duplicados. * numeros = {1, 2, 2, 3} -> Se convierte en {1, 2, 3}.

2. Desordenados e Inalterables

Los elementos no tienen un índice (no puedes usar set[0]). Esto se debe a que Python usa una técnica llamada Hashing para encontrarlos instantáneamente, sin importar si el set tiene 10 o 10 millones de elementos.


Operaciones Matemáticas de Conjuntos

La verdadera magia de los sets ocurre cuando comparamos dos de ellos. Estas operaciones son mucho más rápidas que usar bucles for:

  • Unión (|): Combina todos los elementos de ambos sets (sin repetir ninguno).
  • Intersección (&): Devuelve solo los elementos que están en ambos conjuntos.
  • Diferencia (-): Devuelve los elementos que están en el primero pero no en el segundo.
  • Diferencia Simétrica (^): Devuelve los elementos que están en uno o en otro, pero no en ambos.

Reto: El Analizador de Visitantes

Imagina que tienes dos listas de correos electrónicos de personas que asistieron a dos conferencias distintas. Necesitas saber quiénes son los asistentes únicos y quiénes asistieron a ambas.

Instrucciones: 1. Crea el set asistentes_dia1 con: 'ana@mail.com', 'pedro@mail.com', 'luis@mail.com'. 2. Crea el set asistentes_dia2 con: 'luis@mail.com', 'marta@mail.com', 'ana@mail.com'. 3. Crea la variable todos_unicos usando la Unión (|) de ambos sets. 4. Crea la variable asistieron_ambos usando la Intersección (&). 5. Crea la variable solo_dia1 usando la Diferencia (-) para saber quién estuvo el primer día pero no el segundo.

# Aplica lógica de conjuntos: