Funciones de Lambda en Python

    驴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.

     

    Etiquetas:

    Deja una respuesta

    Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *