Este artículo fue publicado como parte del Blogatón de ciencia de datos
Introducción
En este artículo, aprenderá sobre las funciones anónimas, que también se conocen como Funciones lambda. Aprenderá cuáles son, su sintaxis y la forma de usarlos (con ejemplos). Los temas que discutiremos en este artículo son los siguientes:
- ¿Qué son las funciones anónimas o Lambda en Python?
- ¿Cómo utilizar las funciones Lambda en Python?
- Ejemplo de funciones Lambda en Python
- Uso de funciones Lambda en Python
- ¿Por qué utilizar Lambda Functions?
- ¿Cuándo no debería utilizar las funciones Lambda?
- Funciones Lambda en map (), filter () y reduce ()
Fuente de la imagen: imágenes de Google
¿Qué son las funciones anónimas en Python?
En Python, una función anónima puede ser una función definida sin reputación.
Al definir funciones normales, usamos la def palabra clave en Python, pero al definir funciones anónimas estamos usando la palabra clave lambda.
Por lo tanto, las funciones anónimas también se denominan Funciones lambda.
¿Cómo utilizar las funciones Lambda en Python?
Una función lambda en python tiene la siguiente sintaxis.
Sintaxis de la función Lambda en Python:
lambda arguments: expression
Tenga en cuenta que las funciones de Lambda pueden tener cualquier número de argumentos, pero solo tienen una expresión. En primer lugar, la expresión se evalúa y luego se devuelve. Usamos funciones Lambda siempre que se requieren objetos de función.
Ejemplo de función Lambda en Python
En esta sección, veremos el ejemplo de una función lambda que duplica (es decir, multiplica por dos) el valor de entrada.
Programa para indicar la utilización de funciones Lambda:
double = lambda x: x * 2 print(double(10))
Producción:
20
Explicación del código:
En el código anterior, lambda x: x * 2 es la función lambda. Además, su x es el argumento y x * 2 es la expresión que se evalúa y se devuelve al usuario.
Esta función no tiene nombre. Devuelve un objeto de función que se asigna al identificador double. ahora la llamaremos función estándar. La declaración
double = lambda x: x * 2
es casi idéntico a:
def double(x): return x * 2
Uso de funciones Lambda en Python
Usamos funciones lambda una vez que requerimos una función sin nombre durante un breve período de tiempo.
En Python, generalmente usamos Lambda Functions como argumento para una función de orden superior (una función que toma otras funciones como argumentos).
Por ejemplo, Estas se utilizan junto con funciones integradas como filtro (), mapa (), y reducir(), etc., que discutiremos más adelante en este artículo.
¿Por qué utilizar Lambda Functions?
Como puede ver en la sección anterior, las lambdas se tratan de manera idéntica a las funciones regulares en el nivel del intérprete. En cierto modo, dirás que las lambdas proporcionan una sintaxis compacta para escribir funciones que devuelven una expresión.
Sin embargo, debe saber cuándo es una buena idea usar lambdas y cuándo evitarlas. Durante esta sección, puede aprender varios de los principios de apariencia utilizados por los desarrolladores de Python al escribir lambdas.
Uno de los casos de uso más comunes de lambdas es la programación funcional, ya que Python admite un paradigma (o estilo) de programación denominado programación funcional.
Le permite suministrar una función como parámetro a una función diferente (por ejemplo, en mapa, filtro, etc.). En tales casos, el uso de lambdas ofrece un sublime gracias a crear una función única y pasarla como parámetro.
¿Cuándo no debería utilizar las funciones Lambda?
En un entorno de producción, nunca debe escribir funciones lambda complicadas, ya que será muy difícil para los codificadores que mantienen su código descifrarlo. Si se descubre haciendo expresiones complejas de una sola línea, podría ser una práctica superior definir una función correcta.
Por lo tanto, como práctica recomendada, desea recordar que el código fácil suele ser mejor que el código complejo.
Funciones Lambda en filter ()
La función de filtro se emplea para seleccionar algunos elementos particulares de una secuencia de elementos. La secuencia utilizada en esta función es un iterador como listas, conjuntos, tuplas, etc.
Los elementos que pueden seleccionarse se basan en alguna restricción predefinida. Toma 2 parámetros:
- Una función que define la restricción de filtrado.
- Una secuencia (cualquier iterador como listas, tuplas, etc.)
Por ejemplo,
sequences = [10,2,8,7,5,4,3,11,0, 1] filtered_answer = filter (lambda x: x > 6, sequences) print(list(filtered_answer))
Producción:
[10, 8, 7, 11]
Explicación del código:
- Dentro de la primera declaración, definimos un contenedor de lista denominado como secuencias que contienen algunos números.
- Aquí, declaramos una variable llamada filter_answer, que puede almacenar los valores filtrados devueltos por la función filter ().
- Una función lambda que se ejecuta en cada elemento de la lista y devuelve verdadero si es mayor que 6.
- Imprime el resultado devuelto por la función de filtro.
Funciones Lambda en el mapa ()
La función de mapa se emplea para usar una operación específica para cada elemento en una secuencia. Al igual que filter (), también toma 2 parámetros:
- Una función que define cómo se realizarán las operaciones en los elementos.
- Una o más secuencias.
Por ejemplo,
En este ejemplo, podríamos hacer un programa que imprima los cuadrados de números en una lista excesivamente dada:
sequences = [10,2,8,7,5,4,11] squared_result = map (lambda x: x*x, sequences) print(list(squared_result))
Producción:
[100, 4, 64, 49, 25, 16, 121]
Explicación del código:
- Aquí, definimos una lista que contiene secuencias de nombres que contienen algunos números.
- Declaramos una variable llamada squared_result que puede almacenar los valores mapeados.
- Una función lambda se ejecuta en cada elemento de la lista y devuelve el cuadrado de ese número.
- Imprime el resultado devuelto por la función de mapa.
Funciones Lambda en reduce ()
La función de reducción, como map (), se emplea para usar una operación para cada elemento en una secuencia. Sin embargo, su funcionamiento difiere un poco de la función de mapa. Los siguientes pasos deben ser seguidos por la función reduce () para calcular una salida:
Paso 1: Realice la operación definida en los 2 elementos primarios de la secuencia.
Paso 2: Guardar este resultado
Paso 3: Realice la operación con el resultado guardado y por lo tanto el siguiente elemento dentro de la secuencia.
Paso 4: Repita hasta que no queden más elementos.
También toma dos parámetros:
- Una función que define cómo se realizarán las operaciones.
- Una secuencia (cualquier iterador como listas, tuplas, etc.)
Por ejemplo,
En este ejemplo, crearemos un programa que devuelva el producto de todos los elementos presentes en una lista dada por el usuario.
from functools import reduce sequences = [1,2,3,4,5,6] product = reduce (lambda x, y: x*y, sequences) print(product)
Producción:
720
Explicación del código:
- Importar reducir desde el módulo de funciones.
- Aquí, definimos un contenedor de lista llamado secuencias que contiene algunos números.
- Declaramos una variable llamada producto que puede almacenar el valor reducido.
- Una función lambda se ejecuta en cada elemento paso a paso de la lista y devuelve el producto de ese número según el resultado anterior.
- Imprime el resultado devuelto por la función de reducción.
¡Esto termina nuestra discusión!
Notas finales
Espero que hayas disfrutado el artículo.
Si quieres conectarte conmigo, no dudes en ponerte en contacto conmigo. sobre Correo electrónico
Tus sugerencias y dudas son bienvenidas aquí en la sección de comentarios. ¡Gracias por leer mi artículo!
Los medios que se muestran en este artículo no son propiedad de DataPeaker y se utilizan a discreción del autor.