📅  最后修改于: 2023-12-03 15:20:55.541000             🧑  作者: Mango
En Python, una lambda es una función anónima, es decir, una función que no tiene un nombre asociado. En su lugar, se define en una sola línea y se utiliza en el mismo lugar en que fue creada.
La sintaxis básica para definir una lambda es la siguiente:
lambda argumentos: expresión
Donde argumentos
son los argumentos que la función recibe y expresión
es el valor que la función retorna.
Por ejemplo, una lambda que multiplique dos números se vería así:
lambda x, y: x * y
Esta lambda recibe dos argumentos, x
e y
, y retorna su producto.
Las lambdas se utilizan comúnmente en Python como argumentos de otras funciones, como map()
, filter()
y reduce()
, que toman una función como su primer argumento.
La función map()
aplica una función a cada elemento de un iterable y retorna un nuevo iterable con los resultados.
Por ejemplo, para obtener una lista con los cuadrados de los números del 1 al 5, se puede utilizar una lambda y la función map()
:
lista = [1, 2, 3, 4, 5]
cuadrados = map(lambda x: x**2, lista)
La variable cuadrados
será ahora un iterable que contiene [1, 4, 9, 16, 25]
.
Por su parte, filter()
toma una función que retorna valores True
o False
y un iterable, y retorna un nuevo iterable con los elementos del iterable que la función retorna True
.
Por ejemplo, para obtener una lista con los números pares del 1 al 10, se puede utilizar una lambda y la función filter()
:
lista = range(1, 10)
pares = filter(lambda x: x % 2 == 0, lista)
La variable pares
será ahora un iterable que contiene [2, 4, 6, 8]
.
La función reduce()
toma una función y una secuencia, y aplica la función a los elementos de la secuencia sucesivamente, reduciéndolos a un solo valor. Es decir, toma los primeros dos elementos de la secuencia, los combina con la función, toma el resultado y lo combina con el siguiente elemento, y así sucesivamente.
Por ejemplo, para obtener la suma de los elementos de una lista, se puede utilizar una lambda y la función reduce()
:
from functools import reduce
lista = [1, 2, 3, 4, 5]
suma = reduce(lambda x, y: x + y, lista)
La variable suma
será ahora 15
.
En resumen, las lambdas permiten definir funciones anónimas en una sola línea, y se utilizan comúnmente como argumentos de otras funciones en Python para aplicar operaciones a elementos de secuencias.