Lambda
#Función que toma x y devuelve x si x es mayor que 4 o 25x si no:
lambda x : x if x>4 else 25*x
#Se llama así:
(lambda x : x if x>4 else 25*x)(3)
Filter
Función que toma una función lambda (que devuelva True o False) y una lista, y devuelve un objeto con los elementos de la lista para los cuales la función lambda devuelve True.
names = ["Miguel", "Ana", "Daniel", "Rafael", "Malena"]
Nombres_por_M = filter(lambda name: name[0] == "M" or name[0] == "m", names)
# El objeto devuelvo por filter NO es una lista, debemos convertirlo:
Lista_nombres = list(Nombres_por_M) Map
Función que toma una función lambda y una lista, y devuelve un objeto con los elementos de la lista tras haberles aplicado la función lambda.
# Lista con notas del curso, algunas sobre 1, otras sobre 10.
lista_notas = [0.25, 7.5, 0.35, 3, 1, 6, 0.75]
#Función que escala las notas (suponiendo que las que son <=1 están sobre 1):
notas_escaladas = map(lambda x : 10*x if x<=1 else x, lista_notas)
#Lo convertimos en lista:
lista_notas = list(notas_escaladas)
Reduce
Función que toma una función lambda (que toma dos valores y devuelve uno) y una lista, y va sustituyendo sucesivamente los dos primeros elementos de la lista (2 elementos) por su output de la función lambda (1 elemento), de forma que se va reduciendo la longitud de la lista hasta ser un solo número.
from functools import reduce
int_list = [3, 6, 9, 12]
#Función que multiplica todos los valores entre sí, de dos en dos:
reduced_int_list = reduce(lambda x,y: x*y, int_list)
#Lo convertimos en lista:
print(reduced_int_list)