Contenido del curso
Evaluación de Conocimientos
Retroalimentación del Curso
Python Esencial: Fundamentos, Lógica y Estructuras de Datos

Estructuras Especializadas

Mientras que las Listas y Diccionarios son los «caballos de batalla», las Tuplas y los Sets (Conjuntos) son herramientas especializadas para necesidades específicas de integridad y unicidad de datos.

Tuplas: La Seguridad de la Inmutabilidad

Una Tupla es básicamente una lista que no se puede cambiar (inmutable). Se define con paréntesis `()`.

¿Por qué querrías una lista que no puedes cambiar? Por seguridad e integridad. Si tienes datos que no deben ser modificados accidentalmente por tu programa (como coordenadas geográficas de tus tiendas, configuraciones de servidor, o días de la semana), usa una tupla.

# Coordenadas GPS de la oficina (Latitud, Longitud)
            ubicacion_oficina = (40.7128, -74.0060)

            # Intentar cambiarla dará error:
            # ubicacion_oficina[0] = 41.000 # TypeError!

            print(ubicacion_oficina[0]) # Acceso igual que en listas

Además, las tuplas son ligeramente más rápidas en memoria que las listas.

Sets (Conjuntos): Unicidad Garantizada

Un Set es una colección desordenada de elementos únicos. Se define con llaves `{}`, igual que los diccionarios, pero sin pares clave-valor.

Su superpoder es eliminar duplicados instantáneamente y realizar operaciones matemáticas de conjuntos (unión, intersección).

Caso de Uso: Tienes una lista de correos de clientes de dos campañas diferentes y quieres enviar un email a todos sin repetir a nadie.

campaña_A = ["juan@mail.com", "ana@mail.com", "juan@mail.com"]
            campaña_B = ["ana@mail.com", "pedro@mail.com"]

            # Convertir a set elimina duplicados automáticamente
            set_A = set(campaña_A) # {'juan@mail.com', 'ana@mail.com'}
            set_B = set(campaña_B) # {'ana@mail.com', 'pedro@mail.com'}

            # Unión: Todos los correos únicos
            total_correos = set_A | set_B 
            print(total_correos) 
            # Salida: {'juan@mail.com', 'ana@mail.com', 'pedro@mail.com'}

            # Intersección: ¿Quiénes están en ambas campañas?
            comunes = set_A & set_B
            print(comunes) 
            # Salida: {'ana@mail.com'}

Resumen de Estructuras

Estructura Sintaxis Ordenada Mutable Única Uso Principal
Lista `[]` No Colecciones generales
Tupla `()` No No Datos constantes
Set `{}` No Eliminar duplicados
Diccionario `{k:v}` No* Claves Sí Búsqueda rápida

Nota: Desde Python 3.7, los diccionarios preservan el orden de inserción, pero conceptualmente se usan por clave, no por orden.