Python lambda (función anónima)
Python usalambdapara crear funciones anónimas.
La función lambda es una función pequeña, anónima y en línea que puede tener cualquier número de parámetros, pero solo una expresión.
Las funciones anónimas no necesitan usardefla palabra clave para definir una función completa.
Las funciones lambda se usan generalmente para escribir funciones simples de una sola línea, y normalmente se utilizan cuando se necesita pasar una función como parámetro, por ejemplo, en funciones como map(), filter(), reduce(), etc.
Características de las funciones lambda:
- Las funciones lambda son anónimas, no tienen nombre de función; solo se pueden usar asignándolas a una variable o pasándolas como parámetro a otras funciones.
- Las funciones lambda generalmente contienen solo una línea de código, lo que las hace adecuadas para escribir funciones simples.
Formato de sintaxis de lambda:
lambda arguments: expression
lambdaEs una palabra clave de Python, utilizada para definir funciones lambda.argumentsEs la lista de parámetros, puede contener cero o más parámetros, pero antes de los dos puntos (::) debe especificarse.expressionEs una expresión, utilizada para calcular y devolver el resultado de la función.
La siguiente función lambda no tiene parámetros:
Ejemplo
El resultado de salida es:
Hello, world!
El siguiente ejemplo usa lambda para crear una función anónima, define un parámetro de función a, la función calcula el parámetro a más 10 y devuelve el resultado:
Ejemplo
El resultado de salida es:
15
Las funciones lambda también pueden tener múltiples parámetros, los parámetros usan comas,para separarlos:
El siguiente ejemplo usa lambda para crear una función anónima, los parámetros a y b se multiplican y devuelve el resultado:
Ejemplo
El resultado de salida es:
30
El siguiente ejemplo usa lambda para crear una función anónima, los parámetros a, b y c se suman y devuelve el resultado:
Ejemplo
El resultado de salida es:
13
Las funciones lambda se usan a menudo con funciones incorporadas como map(), filter() y reduce() para realizar operaciones en colecciones. Por ejemplo:
Ejemplo
El resultado de salida es:
[1, 4, 9, 16, 25]
Usando funciones lambda con filter() para filtrar números pares:
Ejemplo
El resultado de salida es:
[2, 4, 6, 8]
A continuación se muestra un ejemplo que utiliza reduce() y expresiones lambda para demostrar cómo calcular el producto acumulativo de una secuencia:
Ejemplo
El resultado de salida es:
120
En el ejemplo anterior, la función reduce() recorre la lista numbers y usa la función lambda para actualizar continuamente el resultado acumulado, y finalmente se obtiene1 * 2 * 3 * 4 * 5 = 120el resultado.
Otras extensiones