¿Qué son las funciones Lambda y cómo utilizarlas?



Aprenda las funciones lambda de Python junto con la diferencia entre las funciones normales y las funciones lambda y cómo se pueden usar en filter (), map (), reduce ().

Un nombre es una convención que se usa para referirse o dirigirse a cualquier entidad. Casi todo lo que nos rodea tiene un nombre. El mundo de la programación también va en consonancia con esto. ¿Pero es imprescindible nombrar todo? ¿O puede tener algo que sea simplemente 'anónimo'? La respuesta es sí. ' proporciona Funciones Lambda, también conocidas como funciones anónimas que, de hecho, no tienen nombre. Así que avancemos para conocer estos 'misterios anónimos' de Python, en la siguiente secuencia.

Vamos a empezar :)





¿Por qué utilizar Python Lambda Functions?


El propósito principal de las funciones anónimas entra en escena cuando necesitas alguna función solo una vez. Se pueden crear donde se necesiten. Por esta razón, las funciones Python Lambda también se conocen como funciones desechables que se utilizan junto con otras funciones predefinidas como filter (), map (), etc. Estas funciones ayudan a reducir la cantidad de líneas de su código en comparación con normal .

Para probar esto, avancemos más y aprendamos sobre las funciones de Python Lambda.



¿Qué son las funciones de Python Lambda?


Las funciones de Python Lambda son funciones que no tienen ningún nombre. También se conocen como funciones anónimas o anónimas. La palabra 'lambda' no es un nombre, sino una palabra clave. Esta palabra clave especifica que la función que sigue es anónima.

Ahora que sabe a qué se refieren estas funciones anónimas, avancemos más para ver cómo escribe estas funciones de Python Lambda.

¿Cómo escribir funciones Lambda en Python?

Una función Lambda se crea utilizando el operador lambda y su sintaxis es la siguiente:



SINTAXIS:

argumentos lambda: expresión

Pitón función lambda puede tener cualquier número de argumentos, pero solo necesita una expresión. Las entradas o argumentos pueden comenzar en 0 y llegar hasta cualquier límite. Al igual que cualquier otra función, está perfectamente bien tener funciones lambda sin entradas. Por lo tanto, puede tener funciones lambda en cualquiera de los siguientes formatos:

EJEMPLO:

lambda: 'Especifique el propósito'

Aquí, la función lambda no acepta argumentos.

EJEMPLO:

lambda a1: 'Especifique el uso de un1

Aquí, lambda está tomando una entrada que es una1.

casting doble a int en java

Del mismo modo, puede tener lambda a1, a2, a3..anorte.

Tomemos algunos ejemplos para demostrarlo:

EJEMPLO 1:

a = lambda x: x * x imprimir (a (3))

SALIDA: 9

EJEMPLO 2:

a = lambda x,y: x*y print(a(3,7))

SALIDA: 21

Como puede ver, he tomado dos ejemplos aquí. El primer ejemplo hace uso de la función lambda con una sola expresión, mientras que el segundo ejemplo tiene dos argumentos pasados. Tenga en cuenta que ambas funciones tienen una sola expresión seguida de los argumentos. Por lo tanto, las funciones lambda no se pueden utilizar cuando se necesitan expresiones de varias líneas.

Por otro lado, las funciones normales de Python pueden tomar cualquier número de declaraciones en sus definiciones de función.

¿Cómo reducen las funciones anónimas el tamaño del código?

Antes de comparar la cantidad de código requerido, primero anotemos la sintaxis de y compárelo con el de las funciones lambda descritas anteriormente.

Cualquier función normal en Python se define mediante un def palabra clave de la siguiente manera:

SINTAXIS:

def nombre_función (parámetros):
declaración (s)

Como puede ver, la cantidad de código requerida para una función lambda es bastante menor que la de las funciones normales.

Reescribamos el ejemplo que tomamos anteriormente usando funciones normales ahora.

EJEMPLO:

def mi_func (x): return x * x print (mi_func (3))

SALIDA: 9

Como puede ver, en el ejemplo anterior, necesitamos una declaración de retorno dentro de my_func para evaluar el valor del cuadrado de 3. Por el contrario, la función lambda no utiliza esta declaración de retorno, sino el cuerpo de la función anónima está escrito en la misma línea que la función en sí, después del símbolo de dos puntos. Por lo tanto, el tamaño de la función es menor que el de my_func.

Sin embargo, las funciones lambda en los ejemplos anteriores, se llaman usando alguna otra a. Esto se hace porque estas funciones no tienen nombre y, por lo tanto, requieren algún nombre para ser llamadas. Pero, este hecho puede parecer confuso en cuanto a por qué usar tales funciones sin nombre cuando realmente necesita asignar algún otro nombre para llamarlas. Y, por supuesto, después de asignar el nombre a a mi función, ¡ya no permanece sin nombre! ¿Correcto?

Es una pregunta legítima, pero la cuestión es que esta no es la forma correcta de utilizar estas funciones anónimas.

Las funciones anónimas se utilizan mejor dentro de otras funciones de orden superior que hacen uso de alguna función como argumento o devuelven una función como salida. Para demostrar esto, pasemos ahora al próximo tema.

¿Qué son los filtros de contexto en Tableau?

Funciones de Python Lambda dentro de funciones definidas por el usuario:

Como se mencionó anteriormente, las funciones lambda se utilizan dentro de otras funciones para marcar la mejor ventaja.

El siguiente ejemplo consta de new_func, que es una función de Python normal que toma un argumento x. Este argumento luego se agrega a algún argumento desconocido y que se proporciona a través de la función lambda.

EJEMPLO:

def nueva_func (x): return (lambda y: x + y) t = nueva_func (3) u = nueva_func (2) print (t (3)) print (u (3))

SALIDA:

6
5
Como puede ver, en el ejemplo anterior, la función lambda que está presente dentro de new_func se llama siempre que hacemos uso de new_func (). Cada vez, podemos pasar valores separados a los argumentos.

Ahora que ha visto cómo usar funciones anónimas dentro de funciones de orden superior, avancemos para comprender uno de sus usos más populares que se encuentra dentro de los métodos filter (), map () y reduce ().

Cómo usar funciones anónimas dentro de filter (), map () y reduce ():

Funciones anónimas dentro filtrar():

filtrar():

El método filter () se utiliza para filtrar los iterables dados (listas, conjuntos, etc.) con la ayuda de otra función, pasada como argumento, para probar que todos los elementos sean verdaderos o falsos.

La sintaxis de esta función es:

SINTAXIS:

filter (función, iterable)

Ahora considere el siguiente ejemplo:

chef vs marioneta vs jenkins

EJEMPLO:

my_list = [2,3,4,5,6,7,8] new_list = list (filter (lambda a: (a / 3 == 2), my_list)) print (new_list)

SALIDA: [6]

Aquí, my_list es una lista de valores iterables que se pasa a la función de filtro. Esta función usa la función lambda para verificar si hay algún valor en la lista, que equivaldrá a 2 cuando se divide por 3. La salida consiste en una lista que satisface la expresión presente dentro de la función anónima.

mapa():

La función map () en Python es una función que aplica una función dada a todos los iterables y devuelve una nueva lista.

SINTAXIS:

mapa (función, iterable)

Tomemos un ejemplo para demostrar el uso de las funciones lambda dentro de la función map ():

EJEMPLO:

my_list = [2,3,4,5,6,7,8] new_list = list (map (lambda a: (a / 3! = 2), li)) print (new_list)

SALIDA:

[Verdadero, Verdadero, Verdadero, Verdadero, Falso, Verdadero, Verdadero]

El resultado anterior muestra que, siempre que el valor de los iterables no sea igual a 2 cuando se divide por 3, el resultado devuelto debe ser Verdadero. Por lo tanto, para todos los elementos de my_list, devuelve verdadero excepto el valor 6 cuando la condición cambia a False.

reducir():

La función reduce () se utiliza para aplicar alguna otra función a una lista de elementos que se le pasan como parámetro y finalmente devuelve un valor único.

La sintaxis de esta función es la siguiente:

SINTAXIS:

reducir (función, secuencia)

EJEMPLO:

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

El ejemplo anterior se muestra en la siguiente imagen:

reducir-python lambda-edureka

SALIDA: 187

El resultado muestra claramente que todos los elementos de la lista son añadido continuamente para devolver el resultado final.

Con esto, llegamos al final de este artículo sobre 'Python Lambda'. Espero que tengas claro todo lo que se ha compartido contigo. Asegúrese de practicar tanto como sea posible y revertir su experiencia.

Tienes una pregunta para nosotros? Menciónelo en la sección de comentarios de este blog de 'Python Lambda' 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.