Funciones Lambda Y Listas Por Comprensión
Funciones Lambda
● Son funciones anónimas de una sola línea
● Se pueden usar en cualquier lugar siempre
que se necesite un “objeto” función
● Ejecutan una expresión, con o sinparámetros, y devuelve un resultado
Funciones Lambda
Ejemplos:
def cuadrado(x):
return x**2
cuadrado = lambda x: x**2
def es_par(x):
return x%2 == 0
es_par = lambda x: x%2 == 0
Función map
●Aplica una función a cada elemento de la
secuencia pasada como parámetro
def cuadrado(x):
return x**2
lista = [1,2,3,4]
lista2 = map(cuadrado, lista)
[1,4,9,16]
Función filter
● Verifica una condiciónsobre cada elemento
de la secuencia pasada como parámetro y
devuelve solo aquellos que la cumplen
def es_par(x):
return x%2 == 0
lista = [1,2,3,4]
lista2 = filter(es_par, lista)
[2,4]
Funciónreduce
● Aplica una función a pares de elementos de
una secuencia hasta dejarla en un solo valor
def sumar(x, y):
return x + y
lista = [1,2,3,4]
lista2 = reduce(sumar,lista)
10
Combinando confunciones
lambda
● Las funciones map, filter y reduce se pueden
combinar con lambda
lista = [1,2,3,4]
lista2 = filter(lambda x: x%2 == 0, lista)
lista = [1,2,3,4]
lista2 = map(lambda x: x**2, lista)
lista =[1,2,3,4]
lista2 = reduce(lambda x,y: x + y,lista)
Diferencias entre Python 2.7.x y 3.x
● En Python 2.7.x las funciones map y filter
devuelven una lista, mientras que en Python
3.x devuelveniteradores
○ Solución: aplicar la función list() luego de aplicar la
función map o filter
● En Python 3.x la función reduce no existe más
como función incorporada
○ Solución: importarla desde el módulofunctools
Ejemplos
● ¿Qué valor tiene x?
def f(a,b):
return a * b
g = lambda a: f(a,3)
x = g(4)
Ejemplos
● ¿Qué valor tiene y?
def esprimo(numero):
for p in range(2, numero):
if (numero % p) == 0:return False
return True
def es_impar(numero):
return numero % 2 == 1
f = lambda n: esprimo(n) and not es_impar(n)
y = f(7)
Listas por comprensión
● Construcción que permite construir listas a
partir...
Regístrate para leer el documento completo.