Vamos a ver cómo utilizar las funiones Lambda, Filter y Map en Python.
Vamos a indicar primero para qué sirven estas funciones:
Lambda: Una función Lambda no es más que una función tradicional que se puede "resumir" para que ocupe menos código utilizando una sintaxis diferente. Pero su funcionamiento es el mismo.
En el ejemplo, creamos una función tradicional que calcule el área de un triángulo, y luego creamos la misma función en su versión lambda.
Filter: La función Filter permite filtrar de de una lista de variables u objetos cuáles de ellos cumplen una condición, devolviendo sólo los objetos que la cumplen.
En el primer ejemplo, filtramos, de una lista de números, aquellos que son pares.
En el segundo ejemplo, filtramos, de una lista de empleados, aquellos cuyo sueldo sea mayor de 50000.
Map: La función Map permite aplicar a una lista de objetos una función, que se ejecutará para cada uno de los objetos de la lista.
En el ejemplo, de una lista de empleados, aumentamos el salario de todos ellos en un pequeño porcentaje.
Y vamos a ver un ejemplo de cada una:
## FUNCIONES LAMBDA ##
# Función tradicional:
def areaTriangulo(base, altura):
return (base * altura) / 2
area_triangulo1 = areaTriangulo(7, 5)
# Función Lambda:
areaTriangulo = lambda base, altura: (base * altura) / 2
print(areaTriangulo(7, 5))
## PROGRAMACIÓN FUNCIONAL: FUNCIÓN FILTER ##
# Ejemplo con variables numéricas y función tradicional:
def numeroPar(num):
if num % 2 == 0:
return True
numeros = [17, 24, 7, 39, 8, 51, 92]
print(list(filter(numeroPar, numeros)))
# Ejemplo con objetos y función lambda:
class Empleado:
def __init__(self, nombre, cargo, salario):
self.nombre = nombre
self.cargo = cargo
self.salario = salario
listaEmpleados = [
Empleado("Juan", "Director", 75000),
Empleado("Ana", "Presidenta", 85000),
Empleado("Antonio", "Administrativo", 25000),
Empleado("Sara", "Secretaria", 27000),
Empleado("Mario", "Botones", 21000)
]
salariosAltos = filter(lambda empleado: empleado.salario > 50000, listaEmpleados)
## PROGRAMACIÓN FUNCIONAL: FUNCIÓN MAP ##
# Continuamos con el ejemplo anterior de los empleados:
def calculoComision(empleado):
empleado.salario = empleado.salario * 1.03
return empleado
listaempleadosComision = map(calculoComision, listaEmpleados)
Y eso es todo.
No hay comentarios:
Publicar un comentario