Entrada

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]
Esta entrada est谩 licenciada bajo CC BY 4.0 por el autor.