Fundamentos de Programación · Programación

Listas y tuplas

Manipular listas y tuplas en Python, distinguiendo su mutabilidad, y aplicar indexación, porción e iteración para procesar secuencias de datos.

Listas y tuplas

Ordenados, pero no iguales Una lista es una pizarra donde puedes borrar y reescribir; una tupla es una placa grabada. Ambas guardan elementos en orden, pero solo una admite cambios. Elegir la correcta comunica intención y evita errores.

Las secuencias almacenan varios valores en una sola variable, accesibles por su posición. Python ofrece dos protagonistas: la lista, que es mutable, y la tupla, que es inmutable. La indexación y el recorrido funcionan casi igual en las dos.

Indexar: acceder por posición

Porciones para recortar

La notación de porción toma un inicio (incluido) y un final (excluido): lista desde uno hasta tres devuelve los elementos en las posiciones uno y dos. Omitir el inicio o el final equivale a tomar hasta los extremos, y un tercer valor fija el paso.

Listas mutables

Tuplas inmutables

Una vez creada, una tupla no cambia. Eso la hace ligera y segura para datos que no deben alterarse, y permite usarla como clave de diccionario, cosa que una lista no puede. Un solo elemento se escribe con la coma final para distinguirlo de un paréntesis de agrupación.

Desempaquetar secuencias

Asignar varios nombres a la vez reparte los elementos de una secuencia: x, y igual a una tupla de dos valores. Con un asterisco se captura el resto, lo que hace el desempaquetado muy cómodo para procesar registros.

Recorrer con for

Una fila de cajas editables con un lápiz frente a otra fila sellada bajo una placa de cristal
La lista se puede borrar y reescribir; la tupla queda grabada e inmutable una vez creada.

Copiar sin enredar

Asignar una lista a otro nombre no la copia: ambas apuntan al mismo objeto. Para una copia real hay que crearla expresamente; confunde a casi todo el mundo al principio y provoca cambios fantasma.

Cuándo usar cada una

Medir y comprobar

len devuelve cuántos elementos hay, e in pregunta si un valor pertenece a la secuencia. Son las dos consultas que más se usan al validar antes de operar.

Errores frecuentes

Ejemplo resuelto: recortar y desempaquetar medidas

Tienes una lista con las temperaturas de una semana y quieres quedarte con los tres primeros días y separar el resto. Se razona con porciones y desempaquetado.

  1. Indexar desde cero: el primer día ocupa la posición cero, no la uno.
  2. Tomar una porción con inicio incluido y final excluido para aislar los tres primeros valores.
  3. Usar un asterisco al desempaquetar para capturar en una variable los elementos restantes.
  4. Recordar que una porción devuelve una lista nueva, sin alterar la original.
  5. Convertir a tupla la muestra si no debe volver a modificarse.

¿Para qué sirve en la realidad?

Casi toda columna de datos llega como secuencia: saber recortar, desempaquetar y recorrer con for o zip es lo que permite limpiar y transformar registros en cualquier proyecto de análisis.

La principal diferencia entre una lista y una tupla es que:

En Python el primer elemento de una secuencia está en la posición uno.

Secuencias

Contenedor ordenado y editable
lista
Contenedor ordenado e inmutable
tupla
Primer elemento ocupa el índice
cero
Trozo con inicio incluido y final excluido
porción
Repartir una secuencia en varias variables
desempaquetar

Clasifica cada operación según qué tipo de secuencia la admite naturalmente.

Lista
Tupla
Ambas

Objeto inmutable
Objeto cuyo estado no cambia tras su creación.

Une cada necesidad con la estructura adecuada:

Listas y tuplas

# Secuencias
## Lista
### mutable
### append e insert
### crece y cambia
## Tupla
### inmutable
### sirve como clave
### registro fijo
## Común
### índice desde cero
### porciones
### recorrer con for

Estructura de datos lista
Colección ordenada de elementos accesibles por índice.

Vas a almacenar los tres lados de un triángulo y después calcular su perímetro. ¿Elegirías lista o tupla? Justifica tu elección apelando a la mutabilidad y a la intención del código.