Saltar al contenido principal

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

EntradaSalida
[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.reduce para implementar la suma genéricamente