En este tutorial aprenderás qué son las funciones lambda en python con la ayuda de varios ejemplos. Conozca los pros y los contras de usar funciones lambda.
Las funciones Lambda en Python son funciones anónimas, es decir, funciones sin nombre. La función normal se puede definir usando la palabra clave def y la palabra clave lambda se usa para definir la función lambda. La función Lambda toma cualquier cantidad de argumentos, pero solo una expresión.
Sintaxis: lambda arguments : expression
A continuación se muestra un programa simple que utiliza una función lambda.
Código:
lowercaseText = 'python interpreter' # lambda function that converts lowercase text to upper case uppercaseText = lambda word : word.upper() print(uppercaseText(lowercaseText))
Producción:
Explicación: La función lambda uppercaseText convierte la cadena dada de letras minúsculas a mayúsculas y devuelve la nueva cadena.
Diferencias entre la función Lambda y la función regular
función lambda | Función normal | |
1 | Las funciones lambda se pueden definir mediante la palabra clave lambda. | Por otro lado, puedes definir funciones normales en Python usando la palabra clave def. |
2 | Las funciones Lambda son más adecuadas para los casos en los que necesita hacer cosas pequeñas. | Las funciones normales son más adecuadas para los casos en los que necesita escribir varias líneas de código. |
3 | Una gran desventaja de usar funciones lambda en Python es que reduce la legibilidad del código. | Puede mantener la legibilidad de su código agregando comentarios entre declaraciones usando funciones normales. |
A continuación se muestra el programa simple que usa lambdas y funciones normales, que se comportan como los demás, es decir, la misma funcionalidad/lógica.
Código:
# normal function to add given three numbers def sumfunc (num1, num2, num3): return num1+num2+num3 # lambda function to add given three numbers sumlamfunc = lambda n1, n2, n3 : n1 + n2 + n3 print('Total sum -',sumfunc(10, 20, 30)) print('Total sum -',sumlamfunc(10, 20, 30))
Producción:
Explicación: Aquí, la función normal (sumfunc) y la función lambda (sumlamfunc) tienen la misma funcionalidad, es decir, sumando los tres números dados.
Ejemplos de funciones Python Lambda
A continuación se muestran algunos programas de ejemplo en los que se utilizan funciones lambda en varios casos.
Ejemplo 1: función lambda con sentencias if else
Código:
# lambda function that finds bigger number between given 2 numbers Biggernumber = lambda num1, num2 : num1 if(num1 > num2) else num2 print('Bigger number between given 2 numbers is',Biggernumber(10,15))
Producción:
Explicación: La función lambda – Biggernumber encuentra el mayor de los dos números dados y devuelve el número mayor. Entre 10 y 15, 15 es mayor y se devuelve como resultado.
Ejemplo 2: función Lambda con comprensión de lista
Código:
# lambda function that creates a list of numbers numbers = [lambda n=i : n for i in range(1,10)] # print the list of numbers formed from the lambda function for num in numbers: print(num())
Producción:
Explicación: El código anterior crea una lista de números utilizando la función lambda.
Ejemplo 3: función Lambda con función filter()
La función filter() toma una función y una lista de números. Esto filtra todos los elementos de una secuencia determinada (lista) para los que la función devuelve True.
Código:
numbers = [1,2,3,4,5,6,7,8,9,10] # filters the even numbers from given set of numbers using lambda function even_numbers = list(filter(lambda n : n%2==0, numbers)) print(even_numbers)
Producción:
Explicación: El código anterior crea una nueva lista de números pares utilizando la función lambda de la lista de números especificada.
Ejemplo 4: función Lambda con función map()
La función map() toma una función y una lista de números y devuelve una nueva lista de números que consta de todos los elementos lambda modificados devueltos por la función para cada elemento.
Código:
numbers = [1,2,3,4,5,6,7,8,9,10] # finds the squares of numbers in the list square_of_numbers = list(map(lambda n : n*n, numbers)) print(square_of_numbers)
Producción:
Explicación: El código anterior devuelve una nueva lista de números que son valores cuadrados de una lista de números determinada.
Ejemplo 5: función Lambda con función reduce()
La función reduce() toma una función y una lista de números y devuelve un resultado reducido. Está presente en el módulo functools y se puede importar. El método reduce() realiza una operación repetitiva en los pares del iterable.
Código:
import functools numbers = [10,2,30,4,50,6] # finds the smallest number in the given list smallest_number = functools.reduce(lambda n1,n2 : n1 if n1<n2 else n2, numbers) print(smallest_number)
Producción:
Explicación: El código anterior devuelve el número más pequeño de la lista usando la función lambda pasada al método reduce().
Pros y contras de usar funciones lambda en Python
Profesionales:
- Las funciones Lambda son concisas y fáciles de escribir, ya que se definen en una sola línea de código.
- Puede usarlos para escribir código con un estilo más funcional, que puede ser más legible y fácil de mantener en algunos casos.
- A menudo se usan como argumentos para funciones de orden superior, lo que le permite escribir código más expresivo al componer funciones simples.
Versus:
- Debido a que las funciones lambda son anónimas, puede ser más difícil depurar el código que las usa, ya que no hay un nombre de función que buscar en los rastreos.
- Están limitados a una sola expresión, por lo que no son adecuados para escribir funciones más grandes o más complejas.
- No admiten la declaración de devolución, por lo que es posible que no sean la mejor opción para las funciones que necesitan devolver un valor.
Más tutoriales de Python:
- Cómo automatizar la búsqueda de Google con Python
- 35 divertidos y mejores memes de programación en Python
- Las 10 mejores aplicaciones de programación para aprender Python
- ¿Cómo usar Python para el desarrollo de juegos de navegador?
- Cómo convertir binario a decimal en Python [5 Methods]
.large-mobile-banner-1-multi-128{border:ninguno! !important;margin-right:auto !important;margin-top:15px !important;max-width:100% !important;min-height:250px;min-width:250px;padding:0;text-align:center ! importante;}