Listas en Python: Guía Completa con Ejercicios Resueltos Paso a Paso
Aprende a crear, modificar, recorrer y ordenar listas en Python con ejemplos prácticos y ejercicios resueltos. La estructura de datos más usada explicada en español.
1¿Qué es una lista en Python?
Una lista es una colección ordenada y modificable de elementos. Es la estructura de datos más usada en Python y puede contener cualquier tipo de dato: números, textos, booleanos o incluso otras listas.
- Se definen con corchetes
[ ] - Son ordenadas: cada elemento tiene un índice
- Son mutables: se pueden modificar después de crear
- Permiten duplicados: pueden tener elementos repetidos
- Pueden mezclar distintos tipos de datos
2Crear y acceder a listas
Para crear una lista se usan corchetes. Para acceder a sus elementos se usa el índice, que empieza en 0.
# Crear listas en Python frutas = ["manzana", "banano", "naranja", "fresa"] numeros = [10, 20, 30, 40, 50] mixta = ["Python", 3.11, True, 42] vacia = [] # lista vacía # Acceder por índice (empieza en 0) print(frutas[0]) # manzana → primer elemento print(frutas[2]) # naranja → tercer elemento print(frutas[-1]) # fresa → último elemento print(frutas[-2]) # naranja → penúltimo elemento # Longitud de la lista print("Total de frutas:", len(frutas)) # 4
manzana naranja fresa naranja Total de frutas: 4
-1 es el último elemento, -2 el penúltimo, etc. ¡Muy útil para acceder al final de una lista sin saber su tamaño!3Métodos esenciales de listas
Las listas tienen métodos integrados para agregar, eliminar y modificar elementos. Estos son los más importantes:
| Método | ¿Qué hace? | Ejemplo |
|---|---|---|
append(x) | Agrega al final | lista.append("nuevo") |
insert(i, x) | Inserta en posición i | lista.insert(1, "medio") |
remove(x) | Elimina primera ocurrencia de x | lista.remove("manzana") |
pop(i) | Elimina y retorna el elemento en i | lista.pop(0) |
sort() | Ordena la lista (modifica) | lista.sort() |
reverse() | Invierte el orden | lista.reverse() |
count(x) | Cuenta cuántas veces aparece x | lista.count("a") |
index(x) | Retorna el índice de x | lista.index("fresa") |
clear() | Vacía la lista | lista.clear() |
colores = ["rojo", "verde", "azul"] # Agregar elementos colores.append("amarillo") print(colores) # ['rojo', 'verde', 'azul', 'amarillo'] colores.insert(1, "naranja") print(colores) # ['rojo', 'naranja', 'verde', 'azul', 'amarillo'] # Eliminar elementos colores.remove("verde") print(colores) # ['rojo', 'naranja', 'azul', 'amarillo'] eliminado = colores.pop(0) print(f"Eliminado: {eliminado}") # Eliminado: rojo print(colores) # ['naranja', 'azul', 'amarillo'] # Información de la lista print("Posición de 'azul':", colores.index("azul")) # 1 print("Total elementos:", len(colores)) # 3
4Recorrer listas con bucles
Una de las operaciones más comunes es recorrer todos los elementos de una lista. Python ofrece varias formas elegantes de hacerlo:
frutas = ["manzana", "banano", "naranja", "fresa"] # Forma 1: for directo (más común) print("--- Mis frutas ---") for fruta in frutas: print(f" • {fruta}") # Forma 2: con índice usando enumerate() print("\n--- Con número ---") for i, fruta in enumerate(frutas, 1): print(f" {i}. {fruta}") # Forma 3: con range() y len() print("\n--- Con índice ---") for i in range(len(frutas)): print(f" frutas[{i}] = {frutas[i]}")
--- Mis frutas --- • manzana • banano • naranja • fresa --- Con número --- 1. manzana 2. banano 3. naranja 4. fresa --- Con índice --- frutas[0] = manzana frutas[1] = banano frutas[2] = naranja frutas[3] = fresa
5Slicing: cortar listas
El slicing permite extraer partes de una lista usando la sintaxis lista[inicio:fin:paso]. Es una de las características más poderosas de Python.
numeros = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90] print(numeros[2:5]) # [20, 30, 40] → índice 2 al 4 print(numeros[:4]) # [0, 10, 20, 30] → del inicio al 3 print(numeros[6:]) # [60, 70, 80, 90] → del 6 al final print(numeros[::2]) # [0, 20, 40, 60, 80] → de 2 en 2 print(numeros[::-1]) # [90, 80, ... 0] → lista invertida print(numeros[1:8:3]) # [10, 40, 70] → del 1 al 7, paso 3
6Ordenar y buscar en listas
notas = [3.5, 4.8, 2.1, 4.0, 3.9, 4.5, 1.8] # Ordenar (modifica la lista original) notas.sort() print("Ascendente:", notas) notas.sort(reverse=True) print("Descendente:", notas) # sorted() crea una nueva lista sin modificar la original original = [5, 2, 8, 1, 9] ordenada = sorted(original) print("Original:", original) # sin cambios print("Ordenada:", ordenada) # nueva lista # Buscar: in, min, max, sum print("¿Está 4.8?", 4.8 in notas) print("Nota mínima:", min(notas)) print("Nota máxima:", max(notas)) print("Promedio:", sum(notas) / len(notas))
7🏋️ Ejercicios Prácticos Resueltos
Crea un programa que permita al usuario agregar, eliminar y mostrar productos de una lista de compras.
def gestionar_compras(): compras = [] while True: print("\n=== LISTA DE COMPRAS ===") print("1. Ver lista") print("2. Agregar producto") print("3. Eliminar producto") print("4. Salir") opcion = input("\nElige una opción: ") if opcion == "1": if not compras: print("Lista vacía 🛒") else: for i, producto in enumerate(compras, 1): print(f" {i}. {producto}") elif opcion == "2": producto = input("Nombre del producto: ") compras.append(producto) print(f"✅ '{producto}' agregado") elif opcion == "3": producto = input("Producto a eliminar: ") if producto in compras: compras.remove(producto) print(f"🗑 '{producto}' eliminado") else: print("Producto no encontrado ❌") elif opcion == "4": print("¡Hasta luego! 👋") break gestionar_compras()
Dado un grupo de notas, calcula la mayor, menor, promedio, y cuántos estudiantes aprobaron.
def estadisticas_notas(notas): aprobados = [n for n in notas if n >= 3.0] reprobados = [n for n in notas if n < 3.0] print("\n===== ESTADÍSTICAS =====") print(f"Total estudiantes: {len(notas)}") print(f"Nota más alta: {max(notas)}") print(f"Nota más baja: {min(notas)}") print(f"Promedio: {sum(notas)/len(notas):.2f}") print(f"Aprobados: {len(aprobados)}") print(f"Reprobados: {len(reprobados)}") notas_ord = sorted(notas, reverse=True) print(f"Ranking: {notas_ord}") # Prueba con datos de ejemplo mis_notas = [4.2, 2.8, 3.9, 4.7, 1.5, 3.3, 4.0, 2.1] estadisticas_notas(mis_notas)
===== ESTADÍSTICAS ===== Total estudiantes: 8 Nota más alta: 4.7 Nota más baja: 1.5 Promedio: 3.31 Aprobados: 5 Reprobados: 3 Ranking: [4.7, 4.2, 4.0, 3.9, 3.3, 2.8, 2.1, 1.5]
¿Te fue útil esta guía sobre listas? 📋
Déjanos un comentario con tus dudas. ¡Comparte con tus compañeros y suscríbete para más ejercicios resueltos!
- Diccionarios en Python — Guía Completa con Ejercicios
- Funciones en Python: def, return y parámetros
- Programación Orientada a Objetos en Python
Comentarios
Publicar un comentario