← Volver

La función reduce()

reduce() es una función incorporada de Python 2, que toma como argumento un conjunto de valores (una lista, una tupla, o cualquier objeto iterable) y lo "reduce" a un único valor. Cómo se obtiene ese único valor a partir de la colección pasada como argumento dependerá de la función aplicada.

Por ejemplo, el siguiente código reduce la lista [1, 2, 3, 4] al número 10 aplicando la función add(a, b), que retorna la suma de sus argumentos.

def add(a, b):
return a + b

print(reduce(add, [1, 2, 3, 4])) # 10

La función pasada como primer argumento debe tener dos parámetros. reduce() se encargará de llamarla de forma acumulativa (es decir, preservando el resultado de llamadas anteriores) de izquierda a derecha. De modo que el código anterior es similar a:

print(add(add(add(1, 2), 3), 4))

Es decir, la operación realizada es ((1 + 2) + 3) + 4, de la que resulta 10.

A partir de Python 3 la función fue movida al módulo estándar functools.

from functools import reduce

Para más información sobre este módulo véase el artículo functools - Operaciones con funciones.

¿Alguna duda sobre este código? ¡Preguntanos en el foro!