Suma de Elementos
Suma todos los números de una lista en Python. Aprende tres formas de hacerlo: bucle explícito, sum() nativo y comprensiones de lista.
for loop sum() list comprehension reduce
El problema
Crea una función suma_lista(numeros) que reciba una lista de números y devuelva su suma total. Sin usar la función sum() de Python — queremos que entiendas cómo funciona por dentro.
Ejemplos
| Entrada | Salida |
|---|---|
[1, 2, 3, 4, 5] | 15 |
[10, -5, 3] | 8 |
[0, 0, 0] | 0 |
[] | 0 |
Código inicial
def suma_lista(numeros):
# Tu código aquí, sin usar sum()
pass
print(suma_lista([1, 2, 3, 4, 5])) # 15
print(suma_lista([10, -5, 3])) # 8
print(suma_lista([])) # 0
Listas en Python
Las listas son la estructura de datos más usada en Python. Puedes iterar sobre ellas directamente:
numeros = [1, 2, 3, 4, 5]
# Iterar con for
for n in numeros:
print(n) # 1, 2, 3, 4, 5
# Acceder por índice
numeros[0] # 1 (primer elemento)
numeros[-1] # 5 (último elemento)
len(numeros) # 5 (número de elementos)
La forma pythónica: sum()
Ahora que entiendes el mecanismo, usa la función nativa:
sum([1, 2, 3, 4, 5]) # 15
sum([]) # 0 (valor por defecto)
sum([1, 2, 3], 10) # 16 (empieza desde 10)
sum() acepta cualquier iterable, no solo listas:
sum(range(1, 6)) # 15 (suma del 1 al 5)
sum(x**2 for x in [1,2,3]) # 14 (suma de cuadrados, con generator expression)
Variante: suma con condición
# Solo los pares
sum(x for x in numeros if x % 2 == 0)
# Solo los positivos
sum(x for x in numeros if x > 0)
Próximos pasos
- Crea
producto_lista(numeros)que multiplique todos los elementos (valor neutro = 1) - Implementa
suma_anidada(listas)que sume los elementos de una lista de listas:[[1,2],[3,4]]→10 - Usa
functools.reducepara implementar la suma genéricamente