Lección 13 de 45 · Colecciones y texto

Tuplas

Aprende cuándo una colección debería poder cambiar y cuándo conviene que su forma permanezca estable.

Paso a pasoDecisión de modeladoAvanza a tu ritmo
Índice · Lección 13/45
Una colección que comunica «esto va junto»

Una coordenada como (40.4, -3.7) tiene dos valores que forman una unidad. Normalmente no quieres añadir una tercera cosa por accidente ni sustituir una parte sin pensar.

Una tupla es útil precisamente para esos grupos ordenados y de estructura estable.

Evidencia de aprendizaje

Elegir una tupla cuando varios valores forman una unidad estable y desempaquetarla con nombres útiles.

Se lee como una lista, pero no se edita como una lista

Coordenadas
coordenada = (40.4, -3.7)
print(coordenada[0])
print(coordenada[1])

Los índices funcionan igual que en una lista: empiezan en 0. La diferencia aparece al intentar cambiar una posición: coordenada[0] = 41 no está permitido.

Esa limitación no es un castigo. Sirve para expresar que el valor representa una unidad que no debería mutarse por partes.

Desempaquetar convierte posiciones en nombres

Dar significado a cada posición
coordenada = (40.4, -3.7)
latitud, longitud = coordenada

print(latitud)
print(longitud)

El primer valor pasa a latitud y el segundo a longitud. Así dejas de pensar en «posición 0» y «posición 1» y empiezas a trabajar con nombres que explican el dato.

¿Y si hay tres valores y solo dos nombres?

Python no puede repartirlos correctamente y produce un error de desempaquetado. En el caso sencillo, el número de nombres debe coincidir con el número de elementos.

La coma es más importante que los paréntesis

Este detalle merece verlo una vez porque suele sorprender:

Una tupla de un solo elemento
numero = (5)
tupla = (5,)

print(type(numero))
print(type(tupla))

(5) sigue siendo un entero entre paréntesis. La coma de (5,) es la que crea una tupla de un elemento.

Decide primero si la estructura debe cambiar

Escenario 1

Coordenada (latitud, longitud)

Los dos valores forman una unidad estable. ¿Lista o tupla?

Comprobar razonamiento

Tupla. La estructura tiene dos posiciones con significado fijo.

Escenario 2

Tareas pendientes

Se añadirán y eliminarán elementos durante el día. ¿Lista o tupla?

Comprobar razonamiento

Lista. La colección está pensada para cambiar.

Escenario 3

Color RGB (rojo, verde, azul)

Siempre son tres componentes con posiciones conocidas. ¿Lista o tupla?

Comprobar razonamiento

Tupla es una elección natural si quieres tratar los tres valores como una unidad estable.

Desempaqueta la coordenada para dar nombre a cada posición. No uses [0] ni [1].

Salida esperada
Latitud: 40.4
Longitud: -3.7
coordenada.py
La salida aparecerá aquí.

Necesito una pista
  • Python permite asignar varios nombres a la vez a partir de una tupla.
Ver una solución razonada
coordenada = (40.4, -3.7)
latitud, longitud = coordenada

print(f"Latitud: {latitud}")
print(f"Longitud: {longitud}")

Lista o tupla: decide por intención, no por costumbre

Lista: «estos elementos forman una colección que puede cambiar».

Tupla: «estos valores forman juntos una unidad de estructura fija».

No necesitas buscar diferencias de velocidad ni memorizar reglas avanzadas. Elegir por significado ya es una muy buena decisión para programas pequeños.

Si intentas modificarla y Python se queja

Antes de «arreglar» el error convirtiendo todo en lista, vuelve a la intención. Si el dato realmente debe cambiar, probablemente una lista era mejor. Si debe seguir siendo fijo, crea una nueva tupla con los valores correctos en lugar de alterar la anterior.

Puedes continuar cuando…

puedes justificar con una frase por qué usarías una tupla para una coordenada y una lista para una lista de tareas.