📜  Uso de lambda (1)

📅  最后修改于: 2023-12-03 15:20:55.541000             🧑  作者: Mango

Uso de Lambda

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.

Funciones map() y filter()

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].

Función reduce()

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.