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.
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
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
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] = valorpara 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.
pan arroz leche 3
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.
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.