¿Te resulta más fácil leer con fondo crema, un tono de color, más contraste o un texto más grande? Elige tus colores y tu texto una sola vez, para todas las páginas.

Lección gratuita

Listas y arrays: guardar datos en orden

La lección completa está aquí para leer. Crea una cuenta gratuita para ejecutar sus comandos en un laboratorio y hacer sus cuestionarios y tareas.

Lección de 45 minSin comandos

Cuarenta pedidos antes del café

Trabajas en una tienda online de Valencia. Antes de las diez han entrado cuarenta pedidos.

Un cliente cambia el suyo. Otro lo cancela. Llegan tres más.

Un programa necesita guardar todos esos pedidos juntos, en orden, y poder cambiarlos. Para eso existe la lista, la estructura de datos más usada en cualquier trabajo técnico.

Al final de esta lección

Nota

Puedo guardar y cambiar elementos en una lista.

Palabras clave

PalabraQué significaEjemplo
Estructura de datosuna forma de organizar datos en un programa
Listavarios valores en orden bajo un solo nombreorders = ["A-301", "A-302"]
Elementocada valor guardado en la lista
Índicela posición de un elemento, contando desde 0orders[0]
Arrayuna lista de tamaño fijo y de un solo tipo de dato
Recorrervisitar cada elemento, uno detrás de otro

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Nombres en inglés, textos en español

Consejo

En el código, las variables y las funciones llevan nombres en inglés, como orders o stock. Es lo habitual en los equipos de software, también en España. Los comentarios y los mensajes que se imprimen van en español.

Una lista se lee por su índice

Una lista guarda varios valores en orden. Se escribe entre corchetes, con comas entre los elementos.

Cada elemento tiene un índice: su posición. El primero tiene el índice 0, no el 1. Así, orders[0] es el primer pedido y orders[2] es el tercero.

Para cambiar un elemento, le das un valor nuevo en su índice. len(orders) dice cuántos elementos hay.

Prueba: leer y corregir pedidos

Código: python
# Pedidos de hoy en una tienda online, en orden de llegada.
orders = ["A-301", "A-302", "A-303", "A-304"]

print("Primer pedido:", orders[0])
print("Tercer pedido:", orders[2])
print("Total de pedidos:", len(orders))

# El cliente del pedido A-302 lo cambia por el A-310.
orders[1] = "A-310"
print("Lista corregida:", orders)

# Cambia orders[2] para que muestre el cuarto pedido y pulsa Ejecutar.

Una lista crece, encoge y se recorre

Una lista de Python cambia de tamaño mientras el programa trabaja.

append añade un elemento al final. remove quita el primer elemento con ese valor. pop() quita el último y te lo devuelve.

Con un bucle for recorres la lista: en cada vuelta tienes un elemento. Así se revisan todos los pedidos sin escribir una línea para cada uno.

Prueba: el almacén cambia

Código: python
# Unidades de cada producto en el almacén.
stock = ["cafeteras", "tostadoras", "batidoras"]

stock.append("hervidores")     # llega un producto nuevo: va al final
print("Tras append:", stock)

stock.remove("tostadoras")     # deja de venderse: se quita de la lista
print("Tras remove:", stock)

last = stock.pop()             # pop() quita y devuelve el último
print("Sacado con pop:", last)
print("Queda:", stock)

# Recorrer la lista: un elemento en cada vuelta.
for product in stock:
    print("Revisar:", product)

# Añade "freidoras" con append antes del bucle y vuelve a ejecutar.

Ejemplo resuelto: la lista tras cada paso

InstrucciónLista despuésLongitud
Inicio["cafeteras", "tostadoras", "batidoras"]3
append("hervidores")["cafeteras", "tostadoras", "batidoras", "hervidores"]4
remove("tostadoras")["cafeteras", "batidoras", "hervidores"]3
pop()["cafeteras", "batidoras"]2

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Un error frecuente

Advertencia

Mucha gente cree que el último elemento está en lista[len(lista)]. No es así. Como el índice empieza en 0, el último está en len(lista) - 1. Si pides lista[len(lista)], Python da un IndexError: esa posición no existe.

Una lista no es exactamente un array

En lenguajes como Java o C se habla de arrays. Un array tiene un tamaño fijo y guarda un solo tipo de dato.

La lista de Python es más flexible: crece sola y admite tipos distintos. La idea de fondo es la misma: elementos en orden, leídos por su índice.

En una entrevista técnica, saber esta diferencia queda bien.

¿Enseñas a una clase? Asigna este módulo a tus alumnos con guía del profesor, tareas con corrección automática y un laboratorio para cada alumno.