
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 | `[]` | Sí | Sí | No | Colecciones generales |
| Tupla | `()` | Sí | No | No | Datos constantes |
| Set | `{}` | No | Sí | Sí | Eliminar duplicados |
| Diccionario | `{k:v}` | No* | Sí | 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.