Sintaxis Lambda en Python y sus funciones

Python y otros lenguajes como C++, Java y C# tenían funciones lambda adicional su proporción. Mientras que lenguajes como LISP o la familia de lenguajes ML como Haskell usan, OCaml usa lambdas como concepto principal.

En Python, las lambdas son pequeñas funciones anónimas, sujetas a una sintaxis más restrictiva pero más concisa que las funciones regulares de Python. Entonces, en Python, usamos la palabra clave lambda para declarar una función anónima, por lo que nos referimos a ellas como «funciones Lambda». Una función anónima se refiere a una función que se declara de forma anónima.. Esta función se crea de forma anónima con la palabra clave lambda. Aunque se ven sintácticamente diferentes, las funciones lambda se comportan de la misma manera que las funciones regulares declaradas usando la palabra clave def.

Las siguientes son las características de las funciones lambda de Python:

  • Una función lambda puede tomar cualquier número de argumentos, pero son solo una expresión. Una expresión es un fragmento de código ejecutado por la función lambda, que puede o no devolver ningún valor.
  • Las funciones lambda se pueden utilizar para devolver objetos de función.
  • Sinónimamente, las funciones lambda están limitadas a una sola expresión.

Lo entenderemos más claramente tomando un ejemplo que distingue claramente sus funciones y características, porque nos dan ganas de algo de código Python, estilo funcional.

el es función de identificaciónuna función que devuelve su argumento, expresado con una definición de función estándar de Python usando la palabra clave definitivamente como sigue:

def identity(x):
            return x

Aquí id() toma un argumento x y lo devuelve al invocarlo. Por el contrario, si usamos la construcción lambda de Python, obtenemos lo siguiente:

lambda x : x

En el ejemplo anterior, la expresión consiste en:

  • La palabra clave: lambda
  • Variable ligada: x
  • cuerpo: x

La reducción es una estrategia de cálculo lambda utilizada para calcular el valor de la expresión. En el siguiente ejemplo, se reemplaza el argumento 2 de la variable de vinculación x con:

(lambda x : x+1 ) (2)
3

Así es como elaboraremos una función Lambda en su forma natural. Siguiente En este artículo, también obtuvimos algunas cosas más interesantes, ya que discutiremos en detalle sobre las funciones lambda de Python, también aprenderemos cómo crearlas y cómo usarlas. . .

Creación de funciones Lambda:
Usamos la siguiente sintaxis para declarar una función lambda.

lambda argument(s): expression

Como se indicó anteriormente, podemos tener cualquier número de argumentos pero solo una expresión. El operador lambda no puede tener declaraciones y devuelve un objeto de función que podemos asignar a cualquier variable.

Por ejemplo:

remainder = lambda num: num % 2 
print(remainder(5))

Salida: 1

En este código el número lambda: número %2 Es la función lambda. el es no Aunque el argumento es Número 2 es la expresión que se evalúa y se devuelve el resultado de la expresión. La expresión del módulo divide el parámetro de entrada por 2. Proporcionando 5 como parámetro, que se divide por 2, obtenemos un resto de 1.

Debemos señalar aquí que no se le ha dado ningún nombre a la función lambda en el script anterior. Devuelve un objeto de función asignado al identificador residual. Sin embargo, a pesar de ser anónimo, nos fue posible llamarlo de la misma manera que lo llamamos una función normal.

La declaración:

lambda num: num % 2

que es similar a lo siguiente:

def remainder(num): 
      return num % 2

Aquí hay otro ejemplo de una función lambda:

product = lambda x, y : x * y 
print(product(2, 3))

Salida: 6

La función lambda definida anteriormente devuelve los valores de los dos argumentos.

Uso de funciones Lambda:
Las funciones lambda se usan cuando necesitamos una función por un corto período de tiempo. Esto se usa comúnmente cuando queremos pasar una función como argumento a funciones de orden superior, es decir, funciones que toman otras funciones como argumentos.

El siguiente ejemplo ilustra el uso de una función anónima dentro de otra función:

def testfunc(num): 
      return lambda x : x * num

En el ejemplo anterior, tenemos una función que toma un argumento, y el argumento es multiplicar por un número desconocido. Mostraremos cómo usar la función anterior:

def testfunc(num): 
      return lambda x : x * num 
result1 = testfunc(10) 

print(result1(9))

Aquí, en el código anterior, la salida debería ser 90, usamos una función lambda allí para multiplicar el número que pasamos por 10. La misma función se puede utilizar para multiplicar el número por 1000:

def testfunc(num): 
      return lambda x : x * num 
result2 = testfunc(1000) 

print(result2(9))

Del mismo modo, la salida aquí debería ser 9000. Podemos usar la función testfunc() para definir las dos funciones lambda anteriores dentro de un programa:

def testfunc(num): 
      return lambda x : x * num 

result1 = testfunc(10) 	
result2 = testfunc(1000) 

print(result1(9)) 
print(result2(9))

Aquí, cuando combinamos los dos programas anteriores en uno, la salida es 90 y 9000 respectivamente. Otra forma de usar la función lambda juntas es usar la función integrada de Python como map() y filter() etc.

Entonces, en la siguiente sección, discutiremos cómo usar funciones lambda con varias funciones integradas de Python.

La función de filtro ( ): La función filter() de Python toma una función lambda junto con una lista como argumentos. Tiene la siguiente sintaxis:

filter(object, iterable)

El objeto aquí debe ser una función lambda que devuelva un valor booleano. Se llamará al objeto para cada elemento en el iterable para hacer la evaluación. El resultado es Verdadero o Falso para cada elemento. Tenga en cuenta que la función solo puede tomar una variable como entrada.

Una función lambda, junto con la lista a evaluar, se pasa a la función filter(). La función filter() devuelve una lista de los elementos que devuelven True cuando los evalúa la función lambda. Considere el ejemplo dado a continuación:

numbers_list = [2, 6, 8, 10, 11, 4, 12, 7, 13, 17, 0, 3, 21] 

filtered_list = list(filter(lambda num: (num > 7), numbers_list)) 

print(filtered_list)

hay una salida [8, 10, 11, 12, 13, 17, 21]
En el ejemplo anterior, hemos creado una lista llamada lista_números con una lista de enteros. Hemos creado una función lambda para verificar los números enteros mayores que 7. Esta función lambda se pasa a la función filter() como argumento y los resultados de este filtrado se guardan en una nueva lista denominada filtered_list.

La función mapa():
La función map() es otra función integrada que toma un objeto de función y una lista. La sintaxis de la función map es la siguiente:

map(object, iterable_1, iterable_2, ...)

Se puede utilizar un diccionario, una lista, etc. sea ​​la función iterativa map(). Básicamente, la función map() asigna cada elemento mutable en la entrada al elemento correspondiente en la salida comestible, de acuerdo con la lógica definida por la función lambda. Considere el siguiente ejemplo:

numbers_list = [2, 6, 8, 10, 11, 4, 12, 7, 13, 17, 0, 3, 21] 

mapped_list = list(map(lambda num: num % 2, numbers_list)) 

print(mapped_list)

Y su salida es [0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1].
En el script anterior, tenemos una lista de números, que consta de números aleatorios. Luego llamamos a la función map() y pasamos una función lambda como argumento. La función lambda calcula el resto después de dividir cada número por 2. El resultado del mapeo se almacena en una lista llamada mapped_list. Finalmente, imprimimos el contenido de la lista.

Conclusión:
En Python, una función lambda es una función de una línea declarada de forma anónima, que puede tener cualquier cantidad de argumentos, pero solo puede tener una expresión. Tal función puede comportarse como una función regular declarada usando la palabra clave def de Python. Una función lambda a menudo se pasa como argumento a otra función.

En este artículo, explicamos la sintaxis, los casos de uso y los ejemplos de funciones lambda de uso común. Si alguien tiene predilección por las matemáticas. Puede que se divierta explorando el maravilloso mundo del cálculo. Finalmente podemos decir aquí que las lambdas de Python son como la sal. Una pizca de tocino, jamón y huevos se sumará a los sabores, pero demasiado arruinará el plato.

Esperamos que hayas disfrutado leyendo este artículo. ¿Por qué no echar un vistazo a los mejores proyectos de Python que puede hacer en el futuro?

Aprende mas de programación, no dejes de revisar estos python tutoriales:

3 comentarios en «Sintaxis Lambda en Python y sus funciones»

  1. ¿Por qué complicar la sintaxis de Python con funciones lambda? ¡Menos es más!

  2. ¿Realmente crees que Lambda en Python es tan útil como dicen? 🤔

  3. ¿Realmente son tan útiles las funciones lambda en Python o es puro hype? 🤔

Los comentarios están cerrados.