En este artículo, intentaremos aprender sobre Python Lambda.
Definición
Lambda es una función definida sin nombre. Esto puede tomar varios argumentos, pero solo se permite una expresión que se evalúa y devuelve. Donde se requieren objetos de función, podemos usar la función lambda.
Sintaxis:
argumentos lambda: expresión
Ejemplo 1: La siguiente función se usa para calcular el cubo de un número.
def cubo (a):devuelve un * a * a
imprimir (cubo (3))
La función anterior se puede escribir usando lambda, como se muestra a continuación:
p = lambda x: x * x * ximprimir (p (3))
Ejemplo 2: La siguiente función se utiliza para calcular la suma de dos números.
def suma_2 (x, y):devolver x + y
imprimir (suma_2 (10,20))
La función anterior se puede escribir usando lambda, como se muestra a continuación:
p = lambda x, y: x + yimprimir (p (10,20))
Ejemplo 3: El siguiente ejemplo para lambda toma varios argumentos.
p = lambda x, y, z: x + y + zimprimir (p (10, 5, 3))
Ejemplo 4: Esta función multiplica el número por 2 y se puede escribir usando la función Lambda como se muestra a continuación:
def func (n):devuelve lambda x: x * n
multiplicar_por_2 = func (2)
imprimir (multiplicar_por_2 (11))
imprimir (multiplicar_por_2 (15))
Ejemplo 5: La función toma la función como argumento y devuelve el resultado.
argumento_función = lambda p, f: p + f (p)imprimir (argumento_función (5, lambda p: p * p))
imprimir (argumento_función (10, lambda x: x - 3))
imprimir (argumento_función (10, lambda x: x + 5))
imprimir (argumento_función (10, lambda x: x / 5))
Ejemplo 6: En el siguiente ejemplo, lambda se usa para ordenar los valores.
# (nombre, apellido, edad)datos = [("Sachin", "Tendulkar", "42"), ("Rahul", "Dravid", "44"), ("Virendra", "Sehwag", "40")]
datos.sort (clave = lambda x: x [0]) # ordenar según el nombre
imprimir (datos)
datos = [("Sachin", "Tendulkar", "42"), ("Rahul", "Dravid", "44"), ("Virendra", "Sehwag", "40")]
datos.sort (clave = lambda x: x [1]) # ordenar según el apellido
imprimir (datos)
datos = [("Sachin", "Tendulkar", "42"), ("Rahul", "Dravid", "44"), ("Virendra", "Sehwag", "40")]
datos.sort (clave = lambda x: x [2]) # ordenar según la edad
imprimir (datos)
Ahora, vaya al intérprete de python3.
La función lambda se usa en muchos métodos incorporados. Los siguientes son algunos ejemplos:
1. Mapa
Esta función mapea cada elemento en secuencia usando la función lambda.
Sintaxis:
mapa (función, seq)
Ex:
nums = [1,2,3,4,5,6]
Aquí, multiplicaremos cada elemento de la lista por 2.
mul_2 = mapa (lambda x: x * 2, nums)
print (list (mul_2)) # Devuelve el objeto del mapa y lo encasilla como lista.
En la función anterior, cada elemento de la lista se pasa a la función lambda y la función lambda lo multiplicará por 2.
nums = [1,2,3,4,5,6]mul_2 = mapa (lambda x: x * 2, nums)
imprimir (lista (mul_2))
2. Filtrar
Esta función filtra todos los elementos de una lista para los que la función lambda devuelve True.
Sintaxis:
filtro (función, seq)
Ex:
nums = [0,1,2,3,4,5,6,7,8,9,10]
odd_nums = filter (lambda x: x% 2, nums)
print (list (odd_nums)) # Devuelve el objeto del mapa y lo encasilla como lista.
odd_nums = filter (lambda x: x% 2, nums)
imprimir (lista (números impares))
3. Reducir
Esta función devuelve un solo valor aplicando la función func () a la secuencia.
Sintaxis:
reducir (func, seq)
Ex:
nums = [0,1,2,3,4,5,6,7,8,9,10]
valor = reducir (lambda x, y: x + y, nums)
imprimir (valor)
En la lista anterior, tomará los primeros 2 elementos y realizará la suma. El resultado de una adición se agregará al tercer elemento y así sucesivamente. Finalmente, devolverá un solo valor.
Nota: este método no está disponible en la versión python3 +.
nums = [0,1,2,3,4,5,6,7,8,9,10]valor = reducir (lambda x, y: x + y, nums)
imprimir (valor)
Conclusión
De este artículo, hemos aprendido muchos aspectos de la función lambda. Dependiendo de lo que necesite el programa, podemos usarlo y hacer una mejor codificación en Python. Esto se usa más comúnmente para pasar argumentos a otra función (por ejemplo, hemos visto las funciones anteriores mapear, filtrar y reducir).