None
Una de las cosas más interesantes que podemos hacer con nuestras
funciones de orden superior es pasarlas como argumentos de las fun-
ciones map,filter y reduce. Estas funciones nos permiten sustituir los
bucles típicos de los lenguajes imperativos mediante construcciones
equivalentes.
map(function, sequence[, sequence, ...])La función map aplica una función a cada elemento de una secuencia y
devuelve una lista con el resultado de aplicar la función a cada elemen-
to. Si se pasan como parámetros n secuencias, lafunción tendrá que
aceptar n argumentos. Si alguna de las secuencias es más pequeña que
las demás, el valor que le llega a la función function para posiciones
mayores que el tamaño de dichasecuencia será None.
A continuación podemos ver un ejemplo en el que se utiliza map para
elevar al cuadrado todos los elementos de una lista:
def cuadrado(n):
return n** 2
l = [1, 2, 3]
l2 = map(cuadrado, l)
filter(function, sequence)
La funcion filter verifica que los elementos de una secuencia cum-
plan una determinada condición,devolviendo una secuencia con los
elementos que cumplen esa condición. Es decir, para cada elemento de
sequence se aplica la función function; si el resultado es True se añade
a la lista y encaso contrario se descarta.
A continuación podemos ver un ejemplo en el que se utiliza filter
para conservar solo los números que son pares.
def es_par(n):
return (n % 2.0== 0)
l = [1, 2, 3]
l2 = filter(es_par, l)
reduce(function, sequence[, initial])
La función reduce aplica una función a pares de elementos de una
secuencia hasta dejarla en unsolo valor.
A continuación podemos ver un ejemplo en el que se utiliza reduce
para sumar todos los elementos de una lista.
def sumar(x, y):
return x + y
l = [1, 2, 3]...
Regístrate para leer el documento completo.