Python 馃悕 : Funciones lambda
驴Qu茅 es una funci贸n Lambda?
Las funciones Lambda son similares a las funciones definidas por el usuario con l a palabra def
, pero no llevan nombre. Se le conoce com煤nmente como funciones an贸nimas.
Las funciones Lambda suelen ser 煤tiles en varios contextos, un caso suele ser cuando desea crear una funci贸n que solo contengan expresiones simples, es decir, que podemos escribir en una sola l铆nea (al igual que con las expresiones condicionales ternarias).
Defenir funciones Lambda
Para definir debemos respetar la siguiente sintaxis.
Sintaxis
1
lambda argumento(s) : expresion
lambda
: es una palabra reservada en Python para definir la funci贸n an贸nima.argumentos
: es un marcador de posici贸n, es decir, una variable que se utilizar谩 para contener el valor que desea pasar a la expresi贸n de la funci贸n. Una funci贸n lambda puede tener m煤ltiples variables seg煤n necesite.expresion
: es el c贸digo que desea ejecutar en la funci贸n lambda.
La funci贸n lambda no utiliza expl铆citamente
return
. porque autom谩ticamente devuelve el resultado de la expresi贸n que contiene en el momento que se ejecuta.
Ejemplos de Funciones Lambda
Veamos un ejemplo de una funci贸n definida por el usuario que devuelva un n煤mero recibido por par谩metro elevado al cuadrado:
1
2
3
4
def al_cuadrado(num):
return num ** 2
print(al_cuadrado(10)) # 100
Ahora para hacer lo mismo con una funci贸n lambda. Lo creamos as铆:
1
2
3
al_cuadrado = lambda num: num ** 2
print(al_cuadrado(10)) # 100
Casos para Utilizar Funciones Lambda
En Filtros
Cuando necesitamos en valores espec铆ficos en un iterable, podemos utilizar la funci贸n filter()
de Python. Su sintaxis es la siguiente:
1
filter(function, iterable)
Como podemos observar, esta funci贸n requiere de otra funci贸n que contenga la expresi贸n u operaciones que se realizaran sobre el iterable.
Por ejemplo, supongamos que nos dan una lista de n煤meros y queremos s贸lo los n煤meros pares, sabemos que para que un n煤mero sea par su m贸dulo o resto debe ser 0 cuando se divide por 2. Esa expresi贸n la podemos hacer en una funci贸n lambda.
En ese caso podemos hacer lo siguiente:
1
2
3
4
5
6
numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
pares = filter(lambda x: x % 2 == 0, numeros)
print(pares) # filter nos devuelve un objeto iterador: <filter object at 0x0000000002105C08>
print(list(pares)) # creamos una lista con los valores filtrados: [2, 4, 6, 8, 10]