Saltar al contenido principal

Tuplas y Sets (Conjuntos)

Además de las Listas y Diccionarios (que son las más comunes), Python ofrece otras dos estructuras de datos nativas muy útiles: las Tuplas y los Sets (Conjuntos). Conocerlas te permitirá elegir la herramienta adecuada para el trabajo adecuado.

Tuplas (tuple)

Una tupla es una colección ordenada y A DIFERENCIA DE LAS LISTAS, INMUTABLE. Una vez que se crea una tupla, no puedes cambiar, agregar o eliminar sus elementos. Se definen utilizando paréntesis ().

# Creando una tupla
coordenadas = (4.5, 9.1)
colores_primarios = ("rojo", "amarillo", "azul")

# Accediendo a elementos (igual que en listas)
print(colores_primarios[0]) # Output: rojo

# Intentando modificar una tupla (ESTO CAUSARÁ UN ERROR)
# coordenadas[0] = 5.0 <-- TypeError: 'tuple' object does not support item assignment

¿Cuándo usar Tuplas en lugar de Listas?

  1. Para proteger los datos: Si tienes una colección de valores que no deben cambiar bajo ninguna circunstancia a lo largo de tu programa (como días de la semana, constantes matemáticas, configuraciones), usa una tupla.
  2. Rendimiento: Las tuplas son ligeramente más ligeras y rápidas en memoria que las listas.
  3. Como claves de diccionario: Dado que son inmutables, las tuplas pueden utilizarse como "claves" en los diccionarios (las listas no).

Sets o Conjuntos (set)

Un Set es una colección desordenada, no indexada y que NO PERMITE ELEMENTOS DUPLICADOS. Se definen utilizando llaves {}, pero a diferencia de los diccionarios, no tienen estructura de "clave:valor", solo valores sueltos.

# Creando un set
frutas = {"manzana", "banana", "cereza"}

# Agregando elementos
frutas.add("naranja")

# Los sets no permiten duplicados:
numeros = {1, 2, 2, 2, 3, 4, 4}
print(numeros) # Output: {1, 2, 3, 4} (Automáticamente elimina repetidos)

¿Cuándo usar Sets?

  1. Para eliminar duplicados: La forma más rápida en Python de eliminar valores repetidos de una lista es convertirla a set y luego volverla lista: nueva_lista = list(set(lista_con_duplicados)).
  2. Para comprobaciones de pertenencia ultra rápidas: Si necesitas revisar constantemente si un elemento existe en una colección gigante if elemento in coleccion, los Sets son infinitamente más rápidos que las listas.
  3. Operaciones matemáticas de conjuntos: Los sets en Python soportan las operaciones clásicas de teoría de conjuntos como uniones (|), intersecciones (&) y diferencias (-).
set_a = {1, 2, 3}
set_b = {3, 4, 5}

# Intersección (qué tienen en común)
print(set_a & set_b) # Output: {3}