How-to-Use-Lambda-Functions-in-Python

Cómo usar funciones Lambda en Python [With Examples]

Publicado por
Comparte en redes sociales


En este tutorial, aprenderá todo sobre las funciones lambda en Python, desde la sintaxis para definir funciones lambda hasta diferentes casos de uso con ejemplos de código.

En Python, las lambdas son anónimo funciones que tienen una sintaxis concisa y se pueden usar con otras funciones integradas útiles. Al final de este tutorial, habrá aprendido a definir funciones lambda y cuándo debería considerar usarlas en comparación con las funciones regulares de Python.

¡Empecemos!

Función Python Lambda: sintaxis y ejemplos

Esta es la sintaxis general para definir una función lambda en Python:

lambda parameter(s):return value

En la sintaxis general anterior:

  • lambda es la palabra clave que debe usar para definir una función lambda, seguida de una o más configuraciones que debe tomar la función.
  • Hay dos puntos que separan los parámetros y los valor de retorno.

💡 Al definir una función lambda, debe asegurarse de que el valor de retorno se calcule evaluando una expresión que abarque una sola línea de código. Entenderás esto mejor cuando codifiquemos ejemplos.

Ejemplos de funciones Python Lambda

La mejor manera de comprender las funciones lambda es comenzar reescribiendo las funciones estándar de Python como funciones lambda.

👩🏽‍💻 Puede codificar en un REPL de Python o en el editor de Python en línea de Geekflare.

#1. Considere la siguiente función square()que toma un número, numcomo argumento y devuelve el cuadrado del número.

def square(num):
    return num*num

Puede llamar a la función con argumentos y verificar que funciona correctamente.

>>> square(9)
81
>>> square(12)
144

Puede asignar esta expresión lambda a un nombre de variable, por ejemplo, square1 para hacer la definición de la función más concisa: square1 = lambda num: num*num entonces llama al square1 función con cualquier número como argumento. Sin embargo, sabemos que las lambdas son funciones anónimas, por lo que debe evitar asignarlas a una variable.

para la función square()el parámetro es num y el valor de retorno es num*num. Una vez que los hayamos identificado, podemos insertarlos en la expresión lambda y llamarla con un argumento, como se muestra:

>>> (lambda num: num*num)(2)
4

es el concepto de Expresión de función invocada inmediatamentedonde llamamos a una función justo después de definirla.

#2. A continuación, reescribamos otra función simple add() que toma en cifras, num1 y num2y devuelve su suma, num1 + num2.

def add(num1,num2):
    return num1 + num2

llamémoslo add() función con dos números como argumentos:

>>> add(4,3)
7
>>> add(12,5)
17
>>> add(12,6)
18

En este caso, num1 y num2 son los dos parámetros y el valor devuelto es num1 + num2.

>>> (lambda num1, num2: num1 + num2)(3,7)
10

Las funciones de Python también pueden tomar valores predeterminados para los parámetros. Cambiemos la definición de add() función y establecer el valor predeterminado de la num2 parámetro a 10.

def add(num1, num2=10):
    return num1 + num2

En las siguientes llamadas a funciones:

  • En la primera llamada a la función, el valor de num1 es 1 y el valor de num2 es 3. Cuando pasas el valor de num2 en la llamada de función, se utiliza este valor; la función devuelve 4.
  • Sin embargo, si pasa solo un argumento (num1 es 7), el valor predeterminado de 10 se utiliza para num2; la función devuelve 17.
>>> add(1,3)
4
>>> add(7)
17

Al escribir funciones que toman valores predeterminados para ciertos parámetros como expresiones lambda, puede especificar el valor predeterminado al configurar los parámetros.

>>> (lambda num1, num2 = 10: num1 + num2)(1)
11

¿Cuándo debería usar las funciones de Lambda en Python?

Ahora que ha aprendido los conceptos básicos de las funciones lambda en Python, estos son algunos casos de uso:

  • Cuando tiene una función cuya expresión de retorno es una sola línea de código y no necesita hacer referencia a la función en otro lugar del mismo módulo, puede usar funciones lambda. También hemos codificado algunos ejemplos para entender esto.
  • Puede usar funciones lambda cuando use funciones integradas, como map(), filter() y reduce().
  • Las funciones Lambda pueden ser útiles para clasificar estructuras de datos de Python, como listas y diccionarios.
Leer también  PandaDoc Proposal Software Review: Features, Benefits, and Pricing

Cómo usar Python Lambda con funciones integradas

1. Usar Lambda con map()

los map() función toma un iterable y una función y aplica la función a cada elemento en el iterable, como se muestra:

Python-lambda-con-mapa

Vamos a crear un nums lista y uso map() para crear una nueva lista que contenga el cuadrado de cada número en el nums listado. Tenga en cuenta el uso de la función lambda para definir la operación de elevación al cuadrado.

>>> nums = [4,5,6,9]
>>> list(map(lambda num:num*num,nums))
[16, 25, 36, 81]

Como el map() función devuelve un objeto de mapa, debemos convertirlo en una lista.

▶️ Consulte este tutorial sobre la función map() en Python.

2. Usar Lambda con filtro()

definamos numsuna lista de números:

>>> nums = [4,5,6,9]

Suponga que desea filtrar esta lista y conservar solo los números impares.

Puedes usar la función integrada de Python filter() función.

los filter() la función toma en condición Y un iterable: filter(condition, iterable). El resultado contiene solo aquellos elementos del iterable original que satisfacen la condición. Puede convertir el objeto devuelto en un iterable de Python, como una lista.

python-lambda-con-filtro

Para filtrar todos los números pares, conservaremos solo los números impares. Entonces la expresión lambda debería ser lambda num: num%2!=0. La cantidad num%2 es el resto cuando num se divide por 2

  • num%2!=0 es True cada vez que num es extraño, y
  • num%2!=0 es False cada vez que num es igual.
>>> nums = [4,5,6,9]
>>> list(filter(lambda num:num%2!=0,nums))
[5, 9]

3. Usar Lambda con reduce()

los reduce() función toma un iterable y una función. Reduce el iterable aplicando la función iterativamente sobre los elementos del iterable.

python-lambda-con-reducir

Usar el reduce() función, deberá importarla desde la función integrada de Python functools módulo:

>>> from functools import reduce

usémoslo reduce() funcion para calcular la suma de todos los numeros nums listado. Definimos una expresión lambda: lambda num1,num2:num1+num2como una función de suma reductora.

La operación de reducción será así: f(f(f(4,5),6),9) = f(f(9,6),9) = f(15,9) = 24. Aquí, f es la operación de suma en dos elementos de la lista, definida por la función lambda.

>>> from functools import reduce
>>> nums = [4,5,6,9]
>>> reduce(lambda num1,num2:num1+num2,nums)
24

Funciones de Python Lambda para personalizar la clasificación

Además de usar funciones lambda con funciones integradas de Python, como map(), filter()y reduce()también puede usarlos para personalizar las funciones integradas y los métodos utilizados para ordenar.

Leer también  Choosing The Best Testing Framework [2023]
imagen

1. Ordenar listas de Python

Cuando trabaje con listas de Python, a menudo necesitará ordenarlas según ciertos criterios de clasificación. Para ordenar las listas de Python en su lugar, puede usar la función incorporada sort() método sobre ellos. Si necesita una copia ordenada de la lista, puede utilizar el sorted() función.

La sintaxis para usar Python sorted() la funcion es sorted(iterable, key=...,reverse= True | False).

– Los key El parámetro se utiliza para personalizar la ordenación.
– Los reverse El parámetro se puede establecer en True Dónde False; El valor predeterminado es False.

Al clasificar listas de números y cadenas, la clasificación predeterminada es ascendente y alfabética, respectivamente. Sin embargo, a veces es posible que desee definir un criterio personalizado para la clasificación.

Considere la siguiente lista fruits. Suponga que desea obtener una copia ordenada de la lista. Debe ordenar las cadenas por el número de ocurrencias de ‘p’ que contienen, en orden descendente.

>>> fruits = ['apple','pineapple','grapes','mango']

Es hora de usar la opción. key ajuste. Una cadena es iterable en Python y para obtener la cantidad de ocurrencias de un carácter en ella, puede usar la función incorporada .count() método. Por lo tanto, hemos fijado el key a lambda x:x.count('p') para que la clasificación se base en el número de veces que aparece ‘p’ en la cadena.

>>> fruits = ['apple','pineapple','grapes','mango']
>>> sorted(fruits,key=lambda x:x.count('p'),reverse=True)
['pineapple', 'apple', 'grapes', 'mango']

En este ejemplo:

  • los key sort es el número de ocurrencias del carácter ‘p’, y se define como una expresión lambda.
  • Como definimos el reverse parámetro a Truela clasificación se realiza en orden descendente del número de ocurrencias de ‘p’.

En el fruits ‘piña’ contiene 3 apariciones de ‘p’, y las cadenas ‘manzana’, ‘uvas’ y ‘mango’ contienen 2, 1 y 0 apariciones de ‘p’ respectivamente.

Comprender la clasificación estable

Tomemos otro ejemplo. Para el mismo criterio de clasificación, redefinimos el fruits listado. Aquí, ‘p’ aparece en las cadenas ‘manzana’ y ‘uvas’ dos y una vez respectivamente. Y esto nunca sucede en las cuerdas ‘mango’ y ‘melon’.

>>> fruits = ['mango','apple','melon','grapes']
>>> sorted(fruits,key=lambda x:x.count('p'),reverse=True)
['apple', 'grapes', 'mango', 'melon']

En la lista de salida, ‘mango’ viene antes de ‘melon’ aunque ninguno de los dos tiene el carácter ‘p’. Pero ¿por qué es este el caso? los sorted() la función realiza una ordenación estable; entonces cuando el número de ‘p’ es igual para dos cadenas, el orden de los elementos en el original fruits se mantiene la lista.

Como ejercicio rápido, intercambie las posiciones de «mango» y «melon» en el fruits lista, ordenar la lista por el mismo criterio y observar la salida.

▶️ Obtenga más información sobre cómo ordenar las listas de Python.

2. Ordenar un diccionario de Python

También puede usar lambdas al ordenar los diccionarios de Python. Considere el siguiente diccionario price_dict que contiene los artículos y sus precios.

>>> price_dict = {
... 'Milk':10,
... 'Honey':15,
... 'Bread':7,
... 'Candy':3
... }

Para obtener los pares clave-valor de un diccionario como una lista de tuplas, puede usar el método de diccionario incorporado .items():

>>> price_dict_items = price_dict.items()
dict_items([('Milk', 10), ('Honey', 15), ('Bread', 7), ('Candy', 3)])

En Python, todos los iterables: listas, tuplas, cadenas, etc. siguen una indexación cero. Así, el primer elemento está en el índice 0, el segundo en el índice 1, y así sucesivamente.

Nos gustaría ordenar por valor, que es el precio de cada entrada del diccionario. En cada tupla de la price_dict_items lista, el artículo en el índice 1 es el precio. Por lo tanto, hemos fijado el key a lambda x:x[1] porque utilizará el artículo en el índice 1, el precio, para ordenar el diccionario.

>>> dict(sorted(price_dict_items,key=lambda x:x[1]))
{'Candy': 3, 'Bread': 7, 'Milk': 10, 'Honey': 15}

En la salida, los elementos del diccionario se han ordenado en orden ascendente de precio: desde «Candy», con un precio de 3 unidades, hasta «Honey», con un precio de 15 unidades.

Leer también  11 outils de clonage de voix AI pour créer des voix off authentiques et fluides [2023]

▶️ Para obtener más información, consulte esta guía detallada sobre cómo ordenar un diccionario de Python por clave y valor.

Resumen

¡Y ahí lo tienes! Aprendió cómo definir funciones lambda y usarlas de manera efectiva con otras funciones integradas de Python. He aquí un resumen de las principales conclusiones:

  • En Python, las lambdas son funciones anónimas que puede tomar varios argumentos y devolver un valor; la expresión que se evaluará para generar este valor de retorno debe ser una línea de código. Se pueden usar para hacer que las definiciones de funciones pequeñas sean más concisas.
  • Para definir la función Lambda, puede usar la sintaxis: Parámetro(s) lambda: valor de retorno.
  • Algunos de los casos de uso destacados incluyen usarlos con map(), filter()y reduce() funciones y como parámetro clave para personalizar la clasificación de iterables de Python.

A continuación, aprenda cómo realizar la división del suelo en Python.



Source link

Si quiere puede hacernos una donación por el trabajo que hacemos, lo apreciaremos mucho.

Direcciones de Billetera:

- BTC: 14xsuQRtT3Abek4zgDWZxJXs9VRdwxyPUS 

- USDT: TQmV9FyrcpeaZMro3M1yeEHnNjv7xKZDNe 

- BNB: 0x2fdb9034507b6d505d351a6f59d877040d0edb0f

- DOGE: D5SZesmFQGYVkE5trYYLF8hNPBgXgYcmrx 

También puede seguirnos en nuestras Redes sociales para mantenerse al tanto de los últimos post de la web:

-Twitter

- Telegram

Disclaimer: En Cryptoshitcompra.com no nos hacemos responsables de ninguna inversión de ningún visitante, nosotros simplemente damos información sobre Tokens, juegos NFT y criptomonedas, no recomendamos inversiones

Dejar un comentario

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