Apuntes_Python/02_conceptos/08_lambda_functions/funciones_lambda.py

58 lines
1.5 KiB
Python
Raw Normal View History

2022-12-24 22:41:20 -03:00
"""
Función lambda: Función pequeña y anónima, puede tomar cualquier
cantidad de argumentos, pero solo puede contener
una expresión ( lamdba argumentos: expresión )
"""
# Función que recibe un número y retorna este mas 10
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
mult = lambda x,y: x*y
mult(5, 3) # 15
def mult_func(x, y):
return x*y
# odenar 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)]
# odenar 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)
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
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)
from functools import reduce
producto_a = reduce(lambda x,y: x*y, a)
print(list(producto_a)) # 120