Cómo usar funciones lambda en Python

Cómo usar funciones lambda en Python
Este artículo explicará cómo usar funciones lambda en Python. Las funciones de Lambda se pueden usar para escribir frases concisas, implementar una lógica y obtener rápidamente valores de retorno que se pueden alimentar a otras expresiones.

Sobre funciones de lambda

Las funciones Lambda en Python son funciones no identificadas y anónimas que pueden usarse para crear expresiones que devuelven algún tipo de valor basado en los cálculos implementados en la expresión misma. La lógica en estas funciones lambda se puede escribir de manera concisa, generalmente algo que se ajusta fácilmente en una línea. A veces pueden ser difíciles de leer, especialmente si las personas no están bien versados ​​con funciones lambda. Sin embargo, tienen el beneficio de mantener las cosas juntas dentro de los bloques de código y ayudan mejor a comprender el contexto.

Sintaxis de funciones lambda

La sintaxis de una función Lambda en Python se ve así:

multiplicar = lambda x, y: x * y

La primera parte de la expresión de Lambda, justo antes del colon (:) símbolo, toma parámetros como argumentos. La segunda parte, después del símbolo del colon, debe ser un valor de retorno. Este valor de retorno también puede ser una expresión con lógica. De hecho, las funciones de Lambda se usan casi todo el tiempo para implementar alguna lógica en los argumentos suministrados y luego devolver el resultado final.

Para probar la función Lambda establecida anteriormente, puede usar la siguiente declaración:

Imprimir (multiplicar (3, 4))

Debe obtener la siguiente salida:

12

La misma función lambda se escribiría de otra manera de la siguiente manera:

Def Multiply (x, y):
regresar x * y
Imprimir (multiplicar (3, 4))

Ambas muestras de código darán la misma salida. A continuación se explican algunos ejemplos más de funciones lambda.

Pasar las funciones de lambda como argumentos

Puede usar funciones Lambda para hacer cálculos y suministrar el valor de retorno como argumentos a otras funciones. El método de clasificación en Python toma un argumento de "clave" en el que puede especificar una función invocable que toma un solo argumento para clasificar. En lugar de definir primero una función separada que devuelve una clave y luego suministrar la referencia de la función al argumento, simplemente puede usar una función Lambda.

frutas = [(2, 'manzanas'), (4, 'naranjas'), (3, 'plátanos')]]
frutas.Sort (Key = Lambda Element: Element [0])
Imprimir (frutas)

El código anterior producirá la siguiente salida:

[(2, 'manzanas'), (3, 'plátanos'), (4, 'naranjas')]]

Puede usar lambda en cualquier método de este tipo que tome una función invocable como argumento (método de filtro, por ejemplo).

Use funciones lambda en las comprensiones de la lista

Puede usar Lambda en la lista de comprensiones y una lista se creará debidamente a partir de los valores devueltos por la expresión de Lambda.

get_square = lambda a: a * a
cuadrados = [get_square (x) para x en el rango (5)]
Impresión (cuadrados)

Esto producirá la siguiente salida:

[0, 1, 4, 9, 16]

La muestra de código anterior también se puede escribir de la siguiente manera donde se suministra "X" a la función Lambda como argumento:

cuadrados = [(lambda x: x * x) (x) para x en rango (5)]
Impresión (cuadrados)

Este ejemplo solo ilustra el uso de funciones lambda en las comprensiones de la lista. De lo contrario, puede calcular fácilmente cuadrados utilizando una declaración de comprensión de lista mínima:

imprimir ([x * x para x en el rango (5)])

Use funciones lambda en los diccionarios de Python

La muestra de código a continuación ilustra las funciones lambda utilizadas dentro de los pares de valor clave en un diccionario de Python. Una vez definido, puede llamar a estas funciones en cualquier momento.

Calcular = 'suma': lambda a, b: a + b, 'diferencia': lambda a, b: a - b
Imprimir (calcular ['suma'] (4, 5))
Imprima (calcule ['diferencia'] (4, 5))

Debe obtener la siguiente salida después de ejecutar el código anterior:

9
-1

Conclusión

Las funciones de Lambda proporcionan una excelente manera de escribir expresiones abreviadas y mantener las cosas ordenadas y organizadas sin crear innecesarias muchas funciones nombradas. Sin embargo, las funciones de Lambda en exceso pueden dificultar el código de leer, especialmente cuando más de una persona se considera el código. Es mejor tener un código más legible (incluso si es detallado) que tener algo que puede ser un poco difícil de entender en las revisiciones.