logo

Funciones Lambda de Python

Funciones Lambda de Python Son funciones anónimas significa que la función no tiene nombre. Como ya sabemos el definición La palabra clave se utiliza para definir una función normal en Python. De manera similar, el lambda La palabra clave se utiliza para definir una función anónima en Pitón .

Sintaxis de la función Python Lambda

Sintaxis: argumentos lambda: expresión

  • Esta función puede tener cualquier número de argumentos pero solo una expresión, que se evalúa y devuelve.
  • Uno es libre de utilizar funciones lambda siempre que se requieran objetos de función.
  • Debe tener en cuenta que las funciones lambda están restringidas sintácticamente a una sola expresión.
  • Tiene diversos usos en campos particulares de la programación, además de otro tipo de expresiones en funciones.

Ejemplo de función Lambda de Python

En el ejemplo, definimos una función lambda ( superior ) para convertir una cadena a mayúsculas usando superior() .



Este código define una función lambda llamada upper> que toma una cadena como argumento y la convierte a mayúsculas usando el upper()> método. Luego aplica esta función lambda a la cadena 'techcodeview.com' e imprime el resultado.

Python3




str1>=> 'techcodeview.com'> upper>=> lambda> string: string.upper()> print>(upper(str1))>

>

>

Producción:

GEEKSFORGEEKS>

Uso de la función Lambda en Python

Veamos algunos de los usos prácticos de la función lambda de Python.

Comprobación de condición mediante la función lambda de Python

Aquí el 'formato_numrico' llama a la función lambda y el número se pasa como parámetro para realizar operaciones.

Python3




format_numeric>=> lambda> num: f>'{num:e}'> if> isinstance>(num,>int>)>else> f>'{num:,.2f}'> print>(>'Int formatting:'>, format_numeric(>1000000>))> print>(>'float formatting:'>, format_numeric(>999999.789541235>))>

>

>

Producción:

Int formatting: 1.000000e+06 float formatting: 999,999.79>

Diferencia entre funciones Lambda y función definida def

El código define una función de cubo utilizando tanto el def'> palabra clave y una función lambda. Calcula el cubo de un número determinado (5 en este caso) utilizando ambos enfoques e imprime los resultados. La salida es 125 tanto para el def'> y funciones lambda, demostrando que logran el mismo cálculo cúbico.

Python3




def> cube(y):> >return> y>*>y>*>y> lambda_cube>=> lambda> y: y>*>y>*>y> print>(>'Using function defined with `def` keyword, cube:'>, cube(>5>))> print>(>'Using lambda function, cube:'>, lambda_cube(>5>))>

>

>

Producción:

Using function defined with `def` keyword, cube: 125 Using lambda function, cube: 125>

Como podemos ver en el ejemplo anterior, tanto el cubo() función y lambda_cubo() La función se comporta igual y según lo previsto. Analicemos un poco más el ejemplo anterior:

Con función lambda

Sin función lambda

A veces admite declaraciones de una sola línea que devuelven algún valor. Admite cualquier número de líneas dentro de un bloque de funciones
Bueno para realizar operaciones cortas/manipulaciones de datos. Bueno para cualquier caso que requiera varias líneas de código.
El uso de la función lambda en ocasiones puede reducir la legibilidad del código. Podemos utilizar comentarios y descripciones de funciones para facilitar la lectura.

Usos prácticos de la función lambda de Python

Función Python Lambda con comprensión de listas

En cada iteración dentro del comprensión de la lista , estamos creando una nueva función lambda con un argumento predeterminado de x (donde x es el elemento actual en la iteración). Más tarde, dentro del bucle for, llamamos al mismo objeto de función que tiene el argumento predeterminado usando artículo() y obtener el valor deseado. De este modo, es_lista_pareja almacena la lista de objetos de función lambda.

Python3




is_even_list>=> [>lambda> arg>=>x: arg>*> 10> for> x>in> range>(>1>,>5>)]> for> item>in> is_even_list:> >print>(item())>

>

>

Producción:

10 20 30 40>

Función Python Lambda con if-else

Aquí estamos usando el máx. Función lambda para encontrar el máximo de dos números enteros.

Python3




Max> => lambda> a, b : a>if>(a>b)>else> b> print>(>Max>(>1>,>2>))>

>

>

Producción:

2>

Python Lambda con múltiples declaraciones

Las funciones lambda no permiten declaraciones múltiples; sin embargo, podemos crear dos funciones lambda y luego llamar a la otra función lambda como parámetro de la primera función. Intentemos encontrar el segundo elemento máximo usando lambda.

El código define una lista de sublistas llamadas List'> . Utiliza funciones lambda para ordenar cada sublista y encontrar el segundo elemento más grande en cada sublista. El resultado es una lista de los segundos elementos más grandes, que luego se imprime. El resultado muestra el segundo elemento más grande de cada sublista en la lista original.

Python3




List> => [[>2>,>3>,>4>],[>1>,>4>,>16>,>64>],[>3>,>6>,>9>,>12>]]> sortList>=> lambda> x: (>sorted>(i)>for> i>in> x)> secondLargest>=> lambda> x, f : [y[>len>(y)>->2>]>for> y>in> f(x)]> res>=> secondLargest(>List>, sortList)> print>(res)>

>

>

Producción:

[3, 16, 9]>

Las funciones Lambda se pueden utilizar junto con funciones integradas como filtrar() , mapa() y reducir() .

Usando la función lambda() con filter()

La función filter() en Python toma una función y una lista como argumentos. Esto ofrece una forma elegante de filtrar todos los elementos de una secuencia, para lo cual la función devuelve Verdadero. Aquí hay un pequeño programa que devuelve los números impares de una lista de entrada:

Filtre todos los números impares usando filter() y la función lambda

Aquí, lambda x: (x % 2 != 0) devuelve Verdadero o Falso si x no es par. Dado que filter() solo mantiene elementos donde produce Verdadero , por lo tanto elimina todos los números impares que generaron FALSO .

Python3




li>=> [>5>,>7>,>22>,>97>,>54>,>62>,>77>,>23>,>73>,>61>]> final_list>=> list>(>filter>(>lambda> x: (x>%> 2> !>=> 0>), li))> print>(final_list)>

>

>

Producción:

[5, 7, 97, 77, 23, 73, 61]>

Filtre a todas las personas que tengan más de 18 años, utilizando la función lambda y filter()

El código filtra una lista de edades y extrae las edades de los adultos (mayores de 18 años) utilizando una función lambda y el filter'> función. Luego imprime la lista de edades de adultos. El resultado muestra las edades de las personas mayores de 18 años.

Python3




ages>=> [>13>,>90>,>17>,>59>,>21>,>60>,>5>]> adults>=> list>(>filter>(>lambda> age: age>>18>, ages))> print>(adults)>

SQL seleccionar de varias tablas
>

>

Producción:

[90, 59, 21, 60]>

Usando la función lambda() con map()

La función map() en Python toma una función y una lista como argumento. La función se llama con una función lambda y se devuelve una lista y una nueva lista que contiene todos los elementos modificados con lambda devueltos por esa función para cada elemento. Ejemplo:

Multiplica todos los elementos de una lista por 2 usando la función lambda y map()

El código duplica cada elemento en una lista usando una función lambda y el map'> función. Luego imprime la nueva lista con los elementos duplicados. El resultado muestra cada elemento de la lista original, multiplicado por 2.

Python3




li>=> [>5>,>7>,>22>,>97>,>54>,>62>,>77>,>23>,>73>,>61>]> final_list>=> list>(>map>(>lambda> x: x>*>2>, li))> print>(final_list)>

>

>

Producción:

[10, 14, 44, 194, 108, 124, 154, 46, 146, 122]>

Transforme todos los elementos de una lista a mayúsculas usando la función lambda y map()

El código convierte una lista de nombres de animales a mayúsculas usando una función lambda y el map'> función. Luego imprime la lista con los nombres de los animales en mayúsculas. El resultado muestra los nombres de los animales en letras mayúsculas.

Python3




animals>=> [>'dog'>,>'cat'>,>'parrot'>,>'rabbit'>]> uppered_animals>=> list>(>map>(>lambda> animal: animal.upper(), animals))> print>(uppered_animals)>

>

>

Producción:

['DOG', 'CAT', 'PARROT', 'RABBIT']>

Usando la función lambda() con reduce()

El reducir() La función en Python toma una función y una lista como argumento. La función se llama con una función lambda y se devuelve un iterable y un nuevo resultado reducido. Esto realiza una operación repetitiva sobre los pares del iterable. La función reducir() pertenece a la herramientas funcionales módulo.

Una suma de todos los elementos en una lista usando la función lambda y reducir()

El código calcula la suma de elementos en una lista usando el reduce'> función de la functools'> módulo. importa reduce'> , define una lista, aplica una función lambda que agrega dos elementos a la vez e imprime la suma de todos los elementos de la lista. La salida muestra la suma calculada.

Python3




from> functools>import> reduce> li>=> [>5>,>8>,>10>,>20>,>50>,>100>]> sum> => reduce>((>lambda> x, y: x>+> y), li)> print>(>sum>)>

>

>

Producción:

193>

Aquí los resultados de los dos elementos anteriores se agregan al siguiente elemento y esto continúa hasta el final de la lista como (((((5+8)+10)+20)+50)+100).

Encuentre el elemento máximo en una lista usando la función lambda y reducir()

El código utiliza el functools'> módulo para encontrar el elemento máximo en una lista ( lis'> ) empleando el reduce'> función y una función lambda. Luego imprime el elemento máximo, que en este caso es 6.

Python3




import> functools> lis>=> [>1>,>3>,>5>,>6>,>2>, ]> print>(>'The maximum element of the list is : '>, end>=>'')> print>(functools.>reduce>(>lambda> a, b: a>if> a>b>else> b, lis))>

>

>

Producción:

The maximum element of the list is : 6>