Lección 12 de 45 · Colecciones y texto

Listas

Usa una lista cuando varios valores pertenecen al mismo conjunto y ese conjunto puede cambiar mientras el programa funciona.

Paso a pasoMutación y recorridoAvanza a tu ritmo
Índice · Lección 12/45
De muchas variables a una sola colección

Imagina una lista de tareas. Podrías crear tarea1, tarea2 y tarea3, pero en cuanto aparezca una cuarta tarea el código empezará a crecer de forma incómoda.

Una lista reúne valores relacionados bajo un mismo nombre y, además, permite añadir, quitar o cambiar elementos.

Evidencia de aprendizaje

Modificar una colección y recorrer sus elementos sin confundir mutación con valor devuelto.

Piensa en una fila donde cada elemento tiene posición

Una lista de tareas
tareas = ["leer", "practicar", "descansar"]
print(tareas[0])
print(tareas[2])

Python empieza a numerar las posiciones desde 0. Por eso tareas[0] es "leer", tareas[1] es "practicar" y tareas[2] es "descansar".

Truco para listas cortas: escribe debajo mentalmente 0, 1, 2…. No intentes «sentir» el índice correcto; haz visible la posición.

Una lista está pensada para cambiar

Modificar y ampliar
frutas = ["pera", "manzana"]
frutas[0] = "plátano"
frutas.append("naranja")

print(frutas)

La asignación a frutas[0] sustituye el primer elemento. Después, append() añade uno nuevo al final.

Eso diferencia a una lista de otros tipos que verás enseguida: la lista representa una colección cuyo contenido puede evolucionar.

No necesitas conocer todos los métodos para trabajar con listas

Con cuatro operaciones puedes hacer muchísimo al principio:

  • lista[indice] para leer un elemento.
  • lista[indice] = valor para cambiarlo.
  • lista.append(valor) para añadir al final.
  • len(lista) para saber cuántos elementos hay.

Los demás métodos pueden esperar hasta que un problema concreto los necesite.

Una lista cambia; append() no devuelve una lista nueva

tareas.append("probar")

La lista cambia y sigue guardada en tareas.

tareas = tareas.append("probar")

Error conceptual: append() devuelve None; acabas perdiendo la referencia a la lista.

Cambia el primer producto, añade un tercero con append() y deja que el for recorra la lista completa.

Salida esperada
pan
arroz
leche
3
lista_compra.py
La salida aparecerá aquí.

Necesito una pista
  • La lista ya tiene dos elementos; añade uno al final con compra.append(...).
  • No escribas compra = compra.append(...).
Ver una solución razonada
compra = ["galletas", "arroz"]
compra[0] = "pan"
compra.append("leche")

for producto in compra:
    print(producto)
print(len(compra))

Dos avisos que ahorran muchos errores

Índices: con tres elementos, las posiciones válidas son 0, 1 y 2. lista[3] produce IndexError.

Mutación: append() cambia la lista existente y devuelve None. Por eso escribe lista.append(valor), no lista = lista.append(valor).

La pregunta que decide si una lista encaja

Pregúntate: «¿tengo varios valores del mismo conjunto y quiero conservar su orden o modificarlos?». Si la respuesta es sí, una lista suele ser una opción natural.

Señal de dominio suficiente

Si puedes crear una lista, leer su primer elemento, sustituirlo y añadir otro sin mirar una solución completa, estás preparado para comparar listas con tuplas.