## lambda Función lambda es una función pequeña y anónima, puede tomar cualquier cantidad de argumentos, pero solo puede contener una expresión ( lamdba argumentos: expresión ) Ejemplos: - [Funciónes varias](https://gitea.kickto.net/devfzn/Apuntes_Python/src/branch/master/02_conceptos/08_lambda_functions#funci%C3%B3n-que-recibe-un-n%C3%BAmero-y-retorna-este-mas-10) - [Función que ordena](https://gitea.kickto.net/devfzn/Apuntes_Python/src/branch/master/02_conceptos/08_lambda_functions#ordenar) - [Lambda y map](https://gitea.kickto.net/devfzn/Apuntes_Python/src/branch/master/02_conceptos/08_lambda_functions#map-funci%C3%B3n-secuencia) - [Lambda y filter](https://gitea.kickto.net/devfzn/Apuntes_Python/src/branch/master/02_conceptos/08_lambda_functions#filter-funci%C3%B3n-secuencia) - [Lambda y reduce](https://gitea.kickto.net/devfzn/Apuntes_Python/src/branch/master/02_conceptos/08_lambda_functions#reduce-funci%C3%B3n-secuencia) ### Función que recibe un número y retorna este mas 10 ```python add10 = lambda x: x+10 add10(5) # 15 def add10_func(x): return x + 10 ``` ### Función que recibe dos números y retorna el producto de estos ```python mult = lambda x,y: x*y mult(5, 3) # 15 def mult_func(x, y): return x*y ``` ### Ordenar ```python ## ordenar según el primer valor de las tuplas puntos_2D = [(1, 2), (15, 1), (5, -1), (10, 4)] puntos_2D_sorted = sorted(puntos_2D) # [(1, 2), (5, -1), (10, 4), (15, 1)] # ordenar por el segundo valor de las tuplas def sort_by_y(x): return x[1] # puntos_2D_sorted = sorted(puntos_2D, key=sort_by_y) puntos_2D_sorted = sorted(puntos_2D, key=lambda x: x[1]) # (5, -1), (15, 1), (1, 2), (10, 4)] # ordena según la suma de los valores de las tuplas puntos_2D_sorted = sorted(puntos_2D, key=lambda x: x[0] + x[1]) # [(1, 2), (5, -1), (10, 4), (15, 1)] ``` ### map(función, secuencia) ```python a = [1, 2, 3, 4, 5] b = map(lambda x: x*2, a) print(list(b)) # [2, 4, 6, 8, 10] c = [x *2 for x in a] print(c) # [2, 4, 6, 8, 10] ``` ### filter(función, secuencia) retorna valores donde se cumple la condición de la función ```python b = filter(lambda x: x%2 == 0, a) print(list(b)) # [2, 4] c = [x for x in a if x%2 == 0] print(c) # [2, 4] ``` ### reduce(función, secuencia) ```python from functools import reduce producto_a = reduce(lambda x,y: x*y, a) print(list(producto_a)) # 120 ```