Las listas son una de las estructuras más utilizadas en Python. Nos permiten guardar varios valores dentro de una misma variable y trabajar con ellos de forma ordenada.
En esta guía vamos a aprender cómo crear listas, acceder a sus elementos, modificarlas, recorrerlas y resolver 20 ejercicios prácticos para afianzar los conceptos.
Idea clave: una lista permite almacenar varios valores dentro de una misma estructura. En Python, los índices comienzan en 0.
¿Qué es una lista en Python?
Una lista es una colección ordenada de elementos.
numeros = [10, 20, 30, 40]
En este caso la lista tiene cuatro elementos.
También puede contener texto:
nombres = ["Ana", "Luis", "Pedro"]
O incluso distintos tipos de datos:
datos = ["Ana", 25, 1.70, True]
Índices: las posiciones comienzan en 0
Este punto es fundamental.
numeros = [10, 20, 30, 40] print(numeros[0]) print(numeros[1])
El resultado será:
10 20
La primera posición es 0, la segunda es 1 y así sucesivamente.
Modificar un elemento
numeros = [10, 20, 30] numeros[1] = 99 print(numeros)
Resultado:
[10, 99, 30]
Conocer la cantidad de elementos con len()
numeros = [10, 20, 30, 40] print(len(numeros))
El resultado será 4.
Agregar elementos con append()
numeros = [10, 20] numeros.append(30) print(numeros)
Insertar elementos con insert()
numeros = [10, 30] numeros.insert(1, 20) print(numeros)
Eliminar elementos
Podemos eliminar por valor con remove():
numeros = [10, 20, 30] numeros.remove(20) print(numeros)
O eliminar por posición con pop():
numeros = [10, 20, 30] eliminado = numeros.pop(1) print(numeros) print(eliminado)
Comprobar si un elemento existe
numeros = [10, 20, 30] if 20 in numeros: print("El valor existe")
También podemos usar not in:
if 50 not in numeros: print("El valor no existe")
Recorrer una lista con for
numeros = [10, 20, 30] for numero in numeros: print(numero)
Recorrer una lista utilizando índices
numeros = [10, 20, 30] for i in range(len(numeros)): print(i, numeros[i])
Este enfoque resulta útil cuando necesitamos conocer tanto el valor como su posición.
Listas vacías
numeros = [] numeros.append(10) numeros.append(20) print(numeros)
Cuidado al asignar una lista a otra variable
Este código puede sorprender al principio:
lista1 = [10, 20, 30] lista2 = lista1 lista2[0] = 99 print(lista1) print(lista2)
Ambas variables hacen referencia a la misma lista, por lo que la modificación aparece en las dos.
Si queremos una copia independiente podemos usar:
lista2 = lista1.copy()
Listas anidadas
Una lista puede contener otras listas.
matriz = [
[1, 2, 3],
[4, 5, 6]
]
print(matriz[0][1])
El resultado será 2.
Índice de ejercicios
- Mostrar todos los elementos
- Sumar los valores
- Calcular el promedio
- Encontrar el mayor y el menor
- Contar números pares
- Buscar un elemento
- Contar repeticiones
- Agregar elementos
- Eliminar un elemento
- Invertir una lista
- Eliminar duplicados
- Separar positivos y negativos
- Crear una lista con datos ingresados
- Comparar dos listas
- Encontrar el segundo mayor
- Combinar dos listas
- Ordenar una lista
- Buscar un nombre
- Recorrer una matriz
- Sistema de notas
1. Mostrar todos los elementos
numeros = [5, 10, 15, 20] for numero in numeros: print(numero)
2. Sumar los valores
numeros = [5, 10, 15, 20] suma = 0 for numero in numeros: suma += numero print("Suma:", suma)
3. Calcular el promedio
notas = [7, 8, 6, 9, 10] suma = 0 for nota in notas: suma += nota promedio = suma / len(notas) print("Promedio:", promedio)
4. Encontrar el mayor y el menor
numeros = [8, 3, 15, 2, 11] mayor = numeros[0] menor = numeros[0] for numero in numeros: if numero > mayor: mayor = numero if numero < menor: menor = numero print("Mayor:", mayor) print("Menor:", menor)
5. Contar números pares
numeros = [1, 2, 4, 7, 10, 13] cantidad = 0 for numero in numeros: if numero % 2 == 0: cantidad += 1 print("Cantidad de pares:", cantidad)
6. Buscar un elemento
numeros = [10, 20, 30, 40] buscado = int(input("Ingrese el numero a buscar: ")) if buscado in numeros: print("El valor existe") else: print("El valor no existe")
7. Contar repeticiones
numeros = [1, 2, 2, 3, 2, 4] buscado = 2 cantidad = 0 for numero in numeros: if numero == buscado: cantidad += 1 print("Cantidad de apariciones:", cantidad)
8. Agregar elementos
numeros = [] for i in range(5): numero = int(input("Ingrese un numero: ")) numeros.append(numero) print(numeros)
9. Eliminar un elemento
nombres = ["Ana", "Luis", "Pedro", "Maria"] nombre = input("Ingrese el nombre a eliminar: ") if nombre in nombres: nombres.remove(nombre) print("Lista actualizada:", nombres) else: print("El nombre no existe")
10. Invertir una lista
numeros = [1, 2, 3, 4, 5] invertida = numeros[::-1] print(invertida)
11. Eliminar duplicados
numeros = [1, 2, 2, 3, 4, 4, 5] sin_duplicados = [] for numero in numeros: if numero not in sin_duplicados: sin_duplicados.append(numero) print(sin_duplicados)
12. Separar positivos y negativos
numeros = [5, -3, 8, -1, 0, 4, -7] positivos = [] negativos = [] for numero in numeros: if numero >= 0: positivos.append(numero) else: negativos.append(numero) print("Positivos:", positivos) print("Negativos:", negativos)
13. Crear una lista con datos ingresados
cantidad = int(input("Cuantos numeros desea ingresar: ")) numeros = [] for i in range(cantidad): numero = float(input("Ingrese un numero: ")) numeros.append(numero) print("Lista:", numeros)
14. Comparar dos listas
lista1 = [1, 2, 3] lista2 = [1, 2, 3] if lista1 == lista2: print("Las listas son iguales") else: print("Las listas son diferentes")
15. Encontrar el segundo mayor
numeros = [8, 3, 15, 10, 15, 4] unicos = [] for numero in numeros: if numero not in unicos: unicos.append(numero) unicos.sort() if len(unicos) >= 2: print("Segundo mayor:", unicos[-2]) else: print("No hay suficientes valores distintos")
16. Combinar dos listas
lista1 = [1, 2, 3] lista2 = [4, 5, 6] combinada = lista1 + lista2 print(combinada)
17. Ordenar una lista
numeros = [8, 3, 10, 1, 6] ordenados = sorted(numeros) print("Original:", numeros) print("Ordenada:", ordenados)
sorted() devuelve una nueva lista ordenada sin modificar la original.
18. Buscar un nombre
nombres = ["Ana", "Luis", "Pedro", "Maria"] buscado = input("Ingrese un nombre: ") encontrado = False for nombre in nombres: if nombre.lower() == buscado.lower(): encontrado = True if encontrado: print("Nombre encontrado") else: print("Nombre no encontrado")
19. Recorrer una matriz
matriz = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
for fila in matriz:
for valor in fila:
print(valor, end=" ")
print()
20. Sistema de notas
Terminamos con un pequeño programa que permite cargar notas y calcular estadísticas básicas.
notas = [] cantidad = int(input("Cuantas notas desea ingresar: ")) for i in range(cantidad): nota = float(input("Ingrese una nota: ")) notas.append(nota) if len(notas) > 0: suma = 0 for nota in notas: suma += nota promedio = suma / len(notas) mayor = notas[0] menor = notas[0] for nota in notas: if nota > mayor: mayor = nota if nota < menor: menor = nota print("Notas:", notas) print("Promedio:", promedio) print("Mayor:", mayor) print("Menor:", menor) else: print("No se ingresaron notas")
Métodos útiles de las listas
| Método | Uso |
|---|---|
append() |
Agregar al final |
insert() |
Insertar en una posición |
remove() |
Eliminar por valor |
pop() |
Eliminar por posición |
sort() |
Ordenar la lista original |
reverse() |
Invertir la lista original |
count() |
Contar apariciones |
index() |
Obtener la posición de un valor |
copy() |
Crear una copia superficial |
clear() |
Vaciar la lista |
Errores comunes al trabajar con listas
- Usar una posición inexistente: intentar acceder a un índice fuera del rango genera
IndexError. - Olvidar que los índices empiezan en 0.
- Eliminar un valor que no existe:
remove()genera error si el elemento no está presente. - Confundir una copia con otra referencia:
lista2 = lista1no crea una lista independiente. - Modificar una lista mientras la recorremos: puede producir resultados inesperados y conviene evitarlo al comenzar.
Cómo practicar listas
Una buena forma de avanzar es tomar cada ejercicio y modificarlo:
- pedir los datos al usuario;
- agregar validaciones;
- buscar más de un valor;
- crear nuevas listas a partir de condiciones;
- combinar listas con condicionales y ciclos;
- convertir partes repetidas del código en funciones.
Próximo paso: funciones en Python
Ahora que ya podemos trabajar con varios datos dentro de una misma estructura, el siguiente paso es aprender a organizar mejor nuestros programas mediante funciones. Esto nos permitirá reutilizar código, separar responsabilidades y construir programas cada vez más grandes.
Seguí aprendiendo Python
Si necesitás reforzar la lógica de recorrido, repasá condicionales y ciclos en Python.
El siguiente paso es aprender a organizar y reutilizar esa lógica:
Funciones en Python: parámetros, return y 20 ejercicios resueltos →
Ver la ruta completa de Python
¿Te sirvió esta guía? ☕
Si estos ejercicios te ayudaron a aprender Python, podés apoyar a Club Programador. Cada aporte ayuda a mantener el sitio online y a seguir publicando material gratuito.
🇦🇷 Apoyar desde Argentina
☕ Invitame un café con Mercado Pago
🌎 Apoyar desde otro país
Descubre más desde Club Programador
Suscríbete y recibe las últimas entradas en tu correo electrónico.
3 opiniones en “Listas en Python: 20 ejercicios resueltos paso a paso”