Funciones de Lambda en Python

F

¿Qué son las funciones Lambda?

En Python, usamos el lambda palabra clave 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 declarada sin nombre. Aunque sintácticamente se ven diferentes, las funciones lambda se comportan de la misma manera que las funciones regulares que se declaran usando el def palabra clave. Las siguientes son las características de las funciones lambda de Python:

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

En este artículo, analizaremos las funciones lambda de Python en detalle, y mostraremos ejemplos de cómo usarlas.

Creación de una función 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 lambda num: num % 2 es la función lambda. los num es el argumento mientras num % 2 es la expresión que se evalúa y se devuelve el resultado de la expresión. La expresión obtiene el módulo del parámetro de entrada por 2. Si se proporciona 5 como parámetro, que se divide por 2, obtenemos un resto de 1.

Debería notar que a la función lambda en el script anterior no se le ha asignado ningún nombre. Simplemente devuelve un objeto de función que se asigna al identificador remainder. Sin embargo, a pesar de ser anónimos, nos fue posible llamarlo de la misma manera que llamamos a una función normal. La declaración:

lambda num: num % 2

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 el producto de los valores de los dos argumentos.

¿Por qué utilizar las funciones Lambda?

Las funciones Lambda se utilizan cuando necesita una función durante un período corto de tiempo. Esto se usa comúnmente cuando desea pasar una función como argumento a funciones de orden superior, es decir, funciones que toman otras funciones como argumentos.

El uso de una función anónima dentro de otra función se explica en el siguiente ejemplo:

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

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

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

result1 = testfunc(10)

print(result1(9))

Salida

90

En el script anterior, usamos una función lambda para multiplicar el número que pasamos por 10. La misma función se puede usar para multiplicar el número por 1000:

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

result2 = testfunc(1000)

print(result2(9))

Salida

9000

Es posible que usemos el testfunc() función para definir las dos funciones lambda anteriores dentro de un solo programa:

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

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

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

Salida

90
9000

Las funciones Lambda se pueden utilizar junto con las funciones integradas de Python como map(), filter() etc.

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

La función filter ()

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

filter(object, iterable)

los object aquí debería haber una función lambda que devuelva un valor booleano. los object se llamará para cada elemento del iterable para realizar la evaluación. El resultado es un True o un False para cada artículo. Tenga en cuenta que la función solo puede tomar un iterable como entrada.

Una función lambda, junto con la lista que se va a evaluar, se pasa al filter() función. los filter() La función devuelve una lista de los elementos que regresan. True cuando es evaluado por la función lambda. Considere el ejemplo que se da 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)

Salida

[8, 10, 11, 12, 13, 17, 21]

En el ejemplo anterior, hemos creado una lista llamada numbers_list con una lista de números enteros. Hemos creado una función lambda para comprobar los números enteros mayores que 7. Esta función lambda se ha pasado a la filter() función como argumento y los resultados de este filtrado se han guardado en una nueva lista llamada filtered_list.

La función map ()

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

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

El iterable al map() La función puede ser un diccionario, una lista, etc. map() La función básicamente asigna cada elemento en la entrada iterable al elemento correspondiente en la salida iterable, 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)

Salida

[0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1]

En el script de arriba, tenemos una lista numbers_list, que consta de números aleatorios. Luego llamamos al map() función y pasarle 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 sola línea declarada sin nombre, que puede tener cualquier número de argumentos, pero solo puede tener una expresión. Dicha función es capaz de comportarse de manera similar a una función regular declarada usando Python def palabra clave. A menudo, una función lambda se pasa como argumento a otra función.

En este artículo explicamos la sintaxis, casos de uso y ejemplos de funciones lambda de uso común.

 

About the author

Ramiro de la Vega

Bienvenido a Pharos.sh

Soy Ramiro de la Vega, Estadounidense con raíces Españolas. Empecé a programar hace casi 20 años cuando era muy jovencito.

Espero que en mi web encuentres la inspiración y ayuda que necesitas para adentrarte en el fantástico mundo de la programación y conseguir tus objetivos por difíciles que sean.

Add comment

Sobre mi

Últimos Post

Etiquetas

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con tus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, aceptas el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad