¿Qué es una lista y cuándo usarla?
Una lista en Python es una colección ordenada de elementos que puedes modificar (agregar, quitar o reemplazar). Es ideal cuando necesitas guardar varios datos relacionados en una sola variable: nombres de alumnos, precios, tareas pendientes, puntajes, productos en un carrito, etc.
Ideas clave para trabajar cómodo con listas:
- Ordenadas: cada elemento tiene una posición (índice) empezando en 0.
- Mutables: puedes cambiar su contenido sin crear una lista nueva.
- Heterogéneas: pueden mezclar tipos (aunque en la práctica suele convenir que sean del mismo tipo).
Crear listas y leer elementos (índices y slicing)
Creas una lista con corchetes []. Para acceder a un elemento usas su índice. También puedes usar índices negativos para contar desde el final.
compras = ["pan", "leche", "huevos"] # 3 elementosprint(compras[0]) # "pan" (primer elemento: índice 0)print(compras[-1]) # "huevos" (último elemento)El slicing te permite tomar un “trozo” de la lista: lista[inicio:fin] (el fin no se incluye).
numeros = [10, 20, 30, 40, 50]print(numeros[1:4]) # [20, 30, 40]print(numeros[:3]) # [10, 20, 30]print(numeros[2:]) # [30, 40, 50]Modificar listas: agregar, insertar, reemplazar y eliminar
Agregar al final: append
append agrega un elemento al final. Es la operación más común cuando vas construyendo una colección.
Continúa en nuestra aplicación.
Podrás escuchar el audiolibro con la pantalla apagada, recibir un certificado gratuito para este curso y además tener acceso a otros 5.000 cursos online gratuitos.
O continúa leyendo más abajo...Descargar la aplicación
tareas = ["estudiar", "entrenar"]tareas.append("comprar")print(tareas) # ["estudiar", "entrenar", "comprar"]Insertar en una posición: insert
insert(indice, valor) coloca un elemento en una posición específica.
tareas.insert(1, "leer")print(tareas) # ["estudiar", "leer", "entrenar", "comprar"]Reemplazar por índice
Si conoces el índice, puedes asignar directamente.
tareas[0] = "repasar"print(tareas) # ["repasar", "leer", "entrenar", "comprar"]Eliminar: pop, remove, del
Hay varias formas, según lo que sepas (índice o valor) y lo que necesites (recuperar el elemento o no).
- pop(): elimina por índice y devuelve el elemento (si no pasas índice, quita el último).
- remove(valor): elimina la primera aparición de ese valor.
- del: elimina por índice o por slice (no devuelve nada).
pendientes = ["pagar", "llamar", "enviar mail"]hecha = pendientes.pop() # quita "enviar mail" y lo guardaprint(hecha) # "enviar mail"pendientes.remove("llamar") # elimina por valordel pendientes[0] # elimina por índiceprint(pendientes) # []Medir, buscar y contar: len, in, index, count
Estas herramientas te ayudan a gestionar información: saber cuántos elementos hay, si existe algo, dónde está y cuántas veces aparece.
colores = ["rojo", "azul", "rojo", "verde"]print(len(colores)) # 4print("azul" in colores) # Trueprint(colores.count("rojo")) # 2print(colores.index("verde")) # 3Nota práctica: index falla si el valor no existe. Si no estás seguro, primero verifica con in.
objetivo = "negro"if objetivo in colores: print(colores.index(objetivo))else: print("No está")Ordenar y presentar información: sort, sorted, reverse
Cuando gestionas colecciones, ordenar es una necesidad frecuente.
sort()ordena la lista en el lugar (modifica la lista original).sorted(lista)devuelve una nueva lista ordenada (no toca la original).reverse()invierte el orden actual.
precios = [1200, 450, 999, 4500]precios.sort()print(precios) # [450, 999, 1200, 4500]nombres = ["Zoe", "Ana", "Luis"]ordenados = sorted(nombres)print(nombres) # ["Zoe", "Ana", "Luis"]print(ordenados) # ["Ana", "Luis", "Zoe"]ordenados.reverse()print(ordenados) # ["Zoe", "Luis", "Ana"]Listas anidadas: colecciones de colecciones
Una lista puede contener otras listas. Esto es útil para representar tablas simples: filas y columnas.
ventas = [ ["Ene", 1200], ["Feb", 1800], ["Mar", 1600]]print(ventas[0]) # ["Ene", 1200]print(ventas[0][1]) # 1200Si necesitas agregar una fila nueva:
ventas.append(["Abr", 2100])Guía práctica paso a paso: mini-gestor de inventario con lista
Vas a crear un inventario sencillo donde cada producto se guarda como una lista de 3 datos: [nombre, stock, precio]. La colección completa será una lista de productos.
Paso 1: define la estructura y carga datos iniciales
inventario = [ ["manzana", 10, 0.5], ["pan", 5, 1.2], ["leche", 8, 1.0]]Paso 2: agrega un producto nuevo
Cuando llega un producto nuevo, lo agregas al final.
inventario.append(["arroz", 12, 0.9])Paso 3: busca un producto por nombre (recorriendo la lista)
Como el inventario es una lista de filas, buscas comparando el primer elemento de cada fila (el nombre).
buscado = "pan"pos = -1for i in range(len(inventario)): if inventario[i][0] == buscado: pos = i breakprint(pos) # índice del producto o -1 si no existePaso 4: actualiza stock y precio si existe
Si lo encontraste, puedes modificar la fila directamente.
if pos != -1: inventario[pos][1] = inventario[pos][1] + 3 # suma 3 unidades inventario[pos][2] = 1.3 # nuevo precioelse: print("Producto no encontrado")Paso 5: elimina un producto agotado
Si el stock llega a 0, lo quitas del inventario.
agotado = "leche"pos = -1for i in range(len(inventario)): if inventario[i][0] == agotado: pos = i breakif pos != -1: del inventario[pos]Paso 6: genera un reporte simple (total de ítems y valoración)
Un reporte típico: cuántas unidades hay en total y cuánto vale el inventario (stock × precio).
unidades = 0valor_total = 0.0for producto in inventario: nombre = producto[0] stock = producto[1] precio = producto[2] unidades = unidades + stock valor_total = valor_total + (stock * precio)print("Unidades totales:", unidades)print("Valor total:", valor_total)Mini-retos (para practicar gestionando colecciones)
Reto 1: lista de compras inteligente
Crea una lista compras. Permite agregar productos, eliminar uno por nombre y mostrar la lista ordenada alfabéticamente. Pistas: append, remove, sorted.
Reto 2: top 3 puntajes
Dada una lista de puntajes, ordénala de mayor a menor y quédate con los 3 primeros. Pistas: sorted(puntajes, reverse=True) y slicing [:3].
Reto 3: depuración de duplicados
Dada una lista con elementos repetidos, crea una nueva lista sin duplicados manteniendo el orden original. Pista: usa una lista vistos y verifica con in antes de agregar.