Funciones de mapa, filtro y reducción en Python: todo lo que necesita saber



Aprenda qué son las funciones map (), filter () y reduce () en Python. También sepa cómo usarlos con lambda y funciones definidas por el usuario y entre sí.

Python proporciona muchas funciones integradas que están predefinidas y el usuario final puede usarlas con solo llamarlas. Estas funciones no solo facilitan el trabajo de los programadores, sino que también crean un entorno de codificación estándar. En este artículo, aprenderá sobre tres funciones tan impresionantes, a saber, map (), filter y reduce () en .

Antes de seguir adelante, echemos un vistazo al contenido:





Entonces empecemos. :)

¿Qué son las funciones map (), filter () y reduce () en Python?

Como se mencionó anteriormente, map (), filter () y reduce () están incorporados de Python. Estas funciones permiten el aspecto de programación funcional de . En la programación funcional, los argumentos pasados ​​son los únicos factores que deciden sobre la salida. Estas funciones pueden tomar cualquier otra función como parámetro y también se pueden suministrar a otras funciones como parámetros. Así que ahora echemos un vistazo más profundo a cada una de estas funciones.



La función map ():

La función map () es un tipo de orden superior. Como se mencionó anteriormente, esta función toma otra función como parámetro junto con una secuencia de iterables y devuelve una salida después de aplicar la función a cada iterable presente en la secuencia. Su sintaxis es la siguiente:

SINTAXIS:

mapa (función, iterables)



Aquí, la función define una expresión que a su vez se aplica a los iterables. La función de mapa puede tomar funciones definidas por el usuario, así como funciones lambda como parámetro.

Uso de funciones Lambda y definidas por el usuario en:

Funciones definidas por el usuario dentro de map ():

La función map () puede tomar funciones definidas por el usuario como parámetros. Los parámetros de estas funciones son establecidos exclusivamente por el usuario o el programador. Por ejemplo:

EJEMPLO:

def newfunc (a): return a * a x = map (newfunc, (1,2,3,4)) #x es el objeto del mapa print (x) print (set (x))

SALIDA:

{16, 1, 4, 9}

Como puede ver, x es un objeto de mapa. La siguiente salida de parte muestra la función de mapa tomando newfunc () como su parámetro y luego aplica el a * a a todos los iterables. Como resultado, los valores de todos los iterables se multiplican por sí mismos y se devuelven.

NOTA: La salida no está en el orden de los valores de los iterables porque he usado la función set (). También puede utilizar las funciones list () o tuple (), por ejemplo:

EJEMPLO:

def newfunc (a): return a * a x = map (newfunc, (1,2,3,4)) #x es el objeto del mapa print (x) print (list (x))

SALIDA:

[1, 4, 9, 16]

También puede pasar más de una lista de parámetros. Por ejemplo:

EJEMPLO:

def func (a, b): return a + b a = map (func, [2, 4, 5], [1,2,3]) print (a) print (tupla (a))

SALIDA:

(3, 6, 8)

Ahora veamos cómo puedes usar funciones lambda dentro de la función map ().

Funciones lambda dentro de map ():

Las funciones Lambda son funciones que tienen cualquier nombre. Estas funciones a menudo se suministran como parámetros para otras funciones. Ahora intentemos incrustar funciones lambda dentro de la función map (). Considere el siguiente ejemplo:

EJEMPLO:

tup = (5, 7, 22, 97, 54, 62, 77, 23, 73, 61) newtuple = tuple (mapa (lambda x: x + 3, tup)) print (newtuple)

SALIDA:

(8, 10, 25, 100, 57, 65, 80, 26, 76, 64)

La salida anterior es el resultado de aplicar la expresión lambda (x + 3) a cada elemento presente en la tupla.

La función filter ():

La función filter () se utiliza para crear una lista de salida que consta de valores para los que la función devuelve verdadero. La sintaxis es la siguiente:

SINTAXIS:

filtro (función, iterables)

Al igual que map (), esta función se puede utilizar y también puede tomar funciones definidas por el usuario, así como funciones lambda como parámetro.

EJEMPLO:

def func (x): si x> = 3: return x y = filter (func, (1,2,3,4)) print (y) print (list (y))

SALIDA:

[3, 4]

Como puede ver, y es el objeto de filtro y la lista es una lista de valores que son verdaderos para la condición (x> = 3).

Usando lambda dentro de filter ():


La función lambda que se utiliza como parámetro define realmente la condición que se va a comprobar. Por ejemplo:

EJEMPLO:

y = filter(lambda x: (x>=3), (1,2,3,4)) print(list(y))

SALIDA: [3, 4]

El código anterior produce el mismo resultado que la función anterior.

La función reduce ():

La función reduce (), como su nombre lo describe, aplica una función determinada a los iterables y devuelve un valor único.

reducir-mapa reducir filtro-edureka

La sintaxis de esta función es la siguiente:

SINTAXIS:

reducir (función, iterables)

La función aquí define qué expresión debe aplicarse a los iterables. Esta función debe importarse de las funciones módulo . Por ejemplo:

EJEMPLO:

de functools importar reducir reducir (lambda a, b: a + b, [23,21,45,98])

SALIDA: 187

En el ejemplo anterior, la función de reducción agrega consecutivamente cada presente iterable en la lista y devuelve una única salida.

Las funciones map (), filter () y reduce () en Python se pueden usar juntas.

Usando las funciones map (), filter () y reduce () junto con las demás:

Cuando hace esto, las funciones internas se resuelven primero y luego las funciones externas operan en la salida de las funciones internas.

Primero intentemos pasar la función filter () como parámetro a la función map ().

Usando filter () dentro del mapa ():

El código que se proporciona a continuación primero verifica que la condición (x> = 3) sea verdadera para los iterables. Luego, la salida se mapea usando la función map ().

EJEMPLO:

c = mapa (lambda x: x + x, filtro (lambda x: (x> = 3), (1,2,3,4))) imprimir (lista (c))

SALIDA: [6, 8]

obtener la fecha de la cadena java

Si filtra enteros mayores o iguales a 3 de la tupla dada, obtiene [3,4] como resultado. Entonces, si mapea esto usando la condición (x + x), obtendrá [6,8], que es la salida.

Usando map () dentro de filter ():


Cuando usa la función map () dentro de la función filter (), los iterables son operados primero por la función map y luego se les aplica la condición de filter ().

EJEMPLO:

c = filtro (lambda x: (x> = 3), mapa (lambda x: x + x, (1,2,3,4))) # lambda x: (x> = 3) imprimir (lista (c) )

SALIDA: [4, 6, 8]

Usando map () y filter () dentro de reduce ():

La salida de las funciones internas se reduce según la condición suministrada a la función reduce ().

EJEMPLO:

d = reducir (lambda x, y: x + y, mapa (lambda x: x + x, filtro (lambda x: (x> = 3), (1,2,3,4)))) imprimir (d)

SALIDA: 14

La salida es el resultado de [6,8] que es el resultado de las funciones internas map () y filter ().

Con esto, hemos llegado al final de este artículo sobre las funciones map (), filter () y reduce en Python. Espero que hayas entendido todo claramente. Asegúrese de practicar tanto como sea posible y revertir su experiencia.

Tienes una pregunta para nosotros? Por favor, menciónelo en la sección de comentarios de este blog 'map (), filter () y reduce () Functions en Python' y nos comunicaremos con usted lo antes posible.

Para obtener un conocimiento profundo de Python junto con sus diversas aplicaciones, puede inscribirse en Live con soporte 24/7 y acceso de por vida.