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: