Pasar al contenido principal
Alexys Lozada
José Luján
Manuel Rodriguez
José Luján
Luis Avilés
Álvaro Felipe
José Luján
Beto Quiroga
Jonathan MirCha
Jonathan MirCha
Álvaro Felipe
Alexys Lozada, Álvaro Felipe, Jonathan MirCha
Beto Quiroga
Alexys Lozada
Alexys Lozada
José Luján
Álvaro Felipe
Álvaro Felipe
Jonathan MirCha
Jonathan MirCha
Alexys Lozada, José Luján
Alexys Lozada, José Luján
Alexys Lozada, José Luján
Camilo Adobe
Álvaro Felipe
José Luján
Jonathan MirCha
Álvaro Felipe
Álvaro Felipe
Beto Quiroga, Alexys Lozada
Álvaro Felipe
Juan Villalvazo
Luis Avilés
Jonathan MirCha
Jonathan MirCha
Jonathan MirCha

Métodos funcionales en python

Aprende como utilizar los métodos funcionales map(), filter(), reduce() y la expresión lambda en Python.

Métodos funcionales en python

La programación funcional ha visto un crecimiento bastante grande en su popularidad durante los ultimos años, ya que permite la construcción de aplicaciones mucho más compactas, mantenibles y faciles de testear.

Python es un lenguaje que generalmente se enseña siguiendo el paradigma orientado a objetos, pero gracias a la versatilidad de python, podemos escribir nuestro código siguiendo otro tipo de programación, haciendo nuestras aplicaciones más expresivas y fáciles de desarrollar.

Método map()

El método map nos permite modificar o transformar un array de cualquier forma que queramos, y este método funciona siguiendo la siguiente sintaxis:

 array = [1,5,3,2,6]

def transform_array(number):
  return number + 1

new_array = map(transform_array, array)

print(new_array)
# Salida: 2,6,4,3,7

Este método funciona pasando la función que modificara nuestro array y como segundo parámetro el array que queremos modificiar, cabe resaltar que este método no transforma el array original, si no que crea una copia ya modificada de ese array.

Método filter()

El método filter se encarga de crear un nuevo array filtrando el contenido del array original de acuerdo a una condición que puede ser de cualquier tipo, este método funciona de la siguiente manera:

array = [1,5,3,2,6]

def filter_array(number):
  return number > 3

filtered_array = filter(filter_array, array)

print(filtered_array)
# Salida 5,6

El primer parámetro recibe la función que se encargara de filtrar cada uno de los elementos de nuestro array, y como segundo parámetro recibiremos el array a filtrar, como podemos ver en el código la función recibira cada uno de los numeros del array y agregara el numero al nuevo array solo si el numero es mayor a 3.

Método reduce()

El método reduce toma los valores de un array y los reduce a un unico valor, es especialmente util cuando por ejemplo queremos sumar todos los valores de un array.

from functools import reduce

array = [1,5,3,2,6]

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

sum = reduce(reduce_array, array)

print(sum)
# Salida 17

Como podemos ver, para hacer uso de este método debemos importar la función  `reduce` desde el modulo de functools.

Lambda

Las expresiones lambda nos permite simplificar bastante nuestra forma de trabajar con los métodos funcionales mencionados anteriormente, ya que no hay necesidad de crear una nueva función cada vez que queramos usar estos métodos, haciendo que estos métodos funcionen de igual manera que en los ejemplos anteriores pero de una manera mucho más compacta, estas expresiones funcionan de la siguiente manera:

 array = [1,5,3,2,6]
 
 map_array = map(lambda x: x + 1, array)
 filtered_array = filter(lambda x: x > 3, array)
 sum = reduce(lambda a,b: a + b, array)
 
 print(map_array)
 print(filtered_array)
 print(sum)

Se declara el array, despues usamos cualquiera de estos métodos funcionales y en su primer parametro en lugar de declarar una nueva función escribimos la palabra reservada lambda y los parámetros separados por coma, en este caso x seria cada uno de los numeros del array, aunque puede llamarse de cualquier manera.

Si quieres aprender Python tenemos un curso en EDteam para que comiences desde cero.

Suscríbete al blog de EDteam

Ingresa tu correo electrónico para recibir nuestro boletín semanal