Funciones Python Lambda con ejemplos

Publicado: 2022-06-04

Tabla de contenido

Python: una introducción

Python es un lenguaje de programación de propósito general que es extremadamente popular. Es un lenguaje interpretado de alto nivel que enfatiza la legibilidad del código con el uso de sangría significativa. Los programadores utilizan Python para escribir códigos limpios y lógicos para proyectos de cualquier escala.

Python fue concebido en la década de 1980 como sucesor del lenguaje de programación ABC de Guido Van Rossum. Desde entonces, Python se ha mantenido como un lenguaje de programación popular debido a su versatilidad.

Funciones: una introducción

Las funciones son bloques de código que funcionan cuando se les llama y se pueden llamar n veces en un programa. Son declaraciones de código estructurado y realizan una función específica, y se pueden usar en cualquier momento. Las funciones se clasifican fundamentalmente en:

  • Función definida por el usuario (USF) : funciones personalizables que se pueden cambiar según los requisitos del programador.
  • Funciones integradas (BIF) : funciones que no se pueden personalizar y deben usarse de la forma en que están disponibles.

Aprenda cursos de ciencia de datos en línea en upGrad

Funciones Python Lambda

Las funciones de Python Lambda son esencialmente anónimas porque no poseen un nombre definido. Una función def se usa para denotar una función normal en Python. Mientras tanto, la palabra clave Lambda se usa para definir una función de Python anónima.

La función Lambda es una función pequeña que puede tomar varios argumentos pero solo una expresión. También tienen una sintaxis más restrictiva pero concisa que las funciones regulares de Python. La función lambda se agregó al lenguaje Python en 1994 junto con las funciones map (), filter () y reduce ().

Consulte nuestros programas de ciencia de datos de EE. UU.

Programa de certificado profesional en ciencia de datos y análisis empresarial Maestría en Ciencias en Ciencia de Datos Maestría en Ciencias en Ciencia de Datos Programa de Certificado Avanzado en Ciencia de Datos
Programa PG Ejecutivo en Ciencia de Datos Bootcamp de programación Python Programa de Certificado Profesional en Ciencia de Datos para la Toma de Decisiones Empresariales Programa Avanzado en Ciencia de Datos

Para definir una función anónima, uno tiene que usar la palabra clave lambda como def se usa para funciones normales. Hay tres partes en una función anónima definida en Python:

  • La palabra clave lambda
  • Parámetros o una variable enlazada
  • Cuerpo de función

Sintaxis

La sintaxis de una función lambda es la siguiente:

Lambda p1, p2: expresión

El p1 y p2 son los parámetros aquí. No hay restricciones para agregar parámetros en la función lambda. Puede agregar tantos o tan pocos como desee. Pero la función lambda está restringida sintácticamente a una expresión.

Ejemplos para la función lambda en Python:

Ejemplo 1

x = "Función Lambda"

# lambda obtiene pase para imprimir

(lambda x : imprimir(x))(x)

Producción

función lambda

Ejemplo 2

x = lambda a : a + 10

imprimir (x (5))

Producción

15

Nuestros alumnos también leyeron: Aprenda Python en línea gratis

Diferencias entre función normal y función lambda

La función lambda posee algunas diferencias sintácticas que las funciones normales.

  • Solo se usan expresiones y no declaraciones en el cuerpo. Si se utilizan instrucciones como pasar, afirmar, devolver o aumentar, la salida mostrará un SyntaxError.

Ejemplo

>>> (lambda x: afirmar x == 2)(2)

Archivo “<entrada>”, línea 1

(lambda x: afirmar x == 2)(2)

^

Error de sintaxis: sintaxis invalida

  • Una función lambda solo puede existir como una sola expresión. Incluso si la expresión se distribuye por todo el cuerpo utilizando varias cadenas, solo puede permanecer como una única expresión.

Ejemplo :

>>> (lambda x:

… (x % 2 y 'impar' o 'par'))(3)

'extraño'

Cuando el argumento lambda es impar, el código devuelve la cadena impar e incluso cuando no lo es. El código ocupa dos líneas, ya que está dentro de los paréntesis, pero permanece como una sola expresión.

  • La función lambda no admite anotaciones de tipo. Agregar anotaciones a una sintaxis lambda provocará un error de sintaxis.
  • IIFE o expresión de función inmediatamente invocada es una función que se ejecuta tan pronto como se define. También se conoce como función anónima autoejecutable. IIFE es una consecuencia directa de la función lambda, ya que una función lambda se puede llamar tal como está definida.

Ahora, veamos las diferencias clave entre las funciones normales y las funciones lambda:

(Fuente)

Funciones lambda: pros y contras

ventajas

  • Hace que el código sea más legible.
  • Ideal para funciones que se utilizan una sola vez.
  • Fácil de entender y se puede utilizar para explicaciones lógicas simples.

Contras:

  • No se pueden realizar múltiples expresiones independientes.
  • El uso de la función lambda no es ideal si un código abarca más de una línea en una función normal (def).
  • Todas las entradas, salidas y operaciones no se pueden explicar en una cadena de documentación como en una función normal.

¿Dónde usar Lambdas?

Aunque las funciones def normales y las funciones lambda tienen diferencias clave, internamente, se tratan internamente.

  • El uso común de las funciones lambda en Python es para la programación funcional. Puede usar lambda en la programación funcional para proporcionar una función como parámetro a una función diferente.
  • Si necesita reducir el número de líneas para especificar una función, las lambdas son el camino a seguir.
  • Lambda también se usa con funciones de orden superior como map(), reduce(), etc.
  • La respuesta a los eventos del marco de la interfaz de usuario se puede rastrear mediante funciones lambda.

¿Dónde abstenerse de usar funciones lambda?

  • Escribir funciones lambda complicadas no es una buena práctica, ya que será difícil de descifrar.
  • Abstenerse de utilizar funciones lambda para operaciones recurrentes.
  • Si el código no sigue la Guía de estilo de Python (PEP8).

Las funciones de Lambda se prueban exactamente como las funciones normales. Tanto unittest como doctest se pueden usar para esto.

Lea nuestros artículos populares de ciencia de datos de EE. UU.

Curso de Análisis de Datos con Certificación Curso en línea gratuito de JavaScript con certificación Preguntas y respuestas más frecuentes sobre entrevistas de Python
Preguntas y respuestas de la entrevista del analista de datos Principales opciones de carrera en ciencia de datos en los EE. UU. [2022] SQL Vs MySQL - ¿Cuál es la diferencia?
Una guía definitiva sobre los tipos de datos Salario de desarrollador de Python en los EE. UU. Salario del analista de datos en los EE. UU.: Salario promedio

Función lambda con filtro()

Filter() es una función integrada de Python y lista como argumentos. El filtro () se usa cuando todos los elementos iterables están en una lista y se devuelve otra lista que contiene elementos para los que la función es verdadera.

Ejemplo :

# Código Python para ilustrar

# filtrar() con lambda()

li = [5, 7, 22, 97, 54, 62, 77, 23, 73, 61]

lista_final = lista(filtro(lambda x: (x%2 != 0) , li))

imprimir (lista_final)

Producción:

[5, 7, 97, 77, 23, 73, 61]

(fuente)

Ejemplo :

# Programa para filtrar solo los elementos pares de una lista

mi_lista = [1, 5, 4, 6, 8, 11, 3, 12]

lista_nueva = lista(filtro(lambda x: (x%2 == 0) , mi_lista))

imprimir (nueva_lista)

Producción

[4, 6, 8, 12]

Función lambda con map()

La función map se usa cuando todos los elementos están en la lista, y la lista se devuelve con los elementos devueltos por esa función para cada elemento.

Ejemplo : Para duplicar el valor de cada elemento de la lista, el código es el siguiente:

mi_lista = [1, 5, 4, 6, 8, 11, 3, 12]

nueva_lista = lista(mapa(lambda x: x * 2 , mi_lista))

imprimir (nueva_lista)

Producción:

[2, 10, 8, 12, 16, 22, 6, 24]

Ejemplo : para elevar al cubo todos los números de la lista, el código es el siguiente

lista_1 = [1,2,3,4,5,6,7,8,9]

al cubo = map(lambda x: pow(x,3), list_1)

lista (en cubos)

Producción:

[1, 8, 27, 64, 125, 216, 343, 512, 729]

Función Lambda con función reduce()

La función reduce() en Python es una lista y un argumento. Se llama para devolver una nueva lista reducida iterable. Es algo similar a la función de suma.

Ejemplo 1

Nota: este ejemplo es de la biblioteca functools.

Para obtener la suma de una lista, el código sería,

# Código Python para ilustrar

# reduce() con lambda()

# para obtener la suma de una lista

de functools importar reducir

li = [5, 8, 10, 20, 50, 100]

suma = reducir ((lambda x, y: x + y), li)

imprimir (suma)

Producción:

193

Conclusión

El uso de funciones lambda en Python ha sido un tema controvertido entre los programadores durante mucho tiempo. Si bien es cierto que las lambdas se pueden reemplazar con funciones integradas, listas de comprensión y bibliotecas estándar, también es necesario comprender las funciones lambda. Le ayuda a comprender los principios fundamentales de la programación y escribir mejores códigos.

Incluso si no usa las funciones lambda personalmente, puede haber instancias en las que pueda encontrarlas en los programas de otras personas. Por lo tanto, se recomienda que tenga conocimientos básicos de las funciones lambda de todos modos.

Si está buscando aprender Python completo y mejorar su carrera en ciencia de datos y análisis de negocios, el Programa de certificado profesional en línea de upGrad en ciencia de datos y análisis de negocios de la mejor universidad de EE. UU. - Universidad de Maryland es su mejor opción.

El programa ofrece la oportunidad de estudiar en una de las 100 mejores universidades del mundo y obtener un certificado de Maryland Smith para aumentar sus posibilidades de éxito en el campo. Es un curso de 9 meses con acceso a más de 300 socios de contratación, oportunidades de entrevistas garantizadas para los estudiantes de primer año y seis llamadas de tutoría.

¿Qué son los decoradores en Python?

Una función en Python que toma el argumento de una función y devuelve otra función se llama decorador. Se denota con sintaxis de decorador. Los decoradores se pueden aplicar en funciones lambda pero no con la sintaxis de decorador. Por lo general, se implementa con fines de depuración. Alternativamente, se puede usar una función lambda como decorador, pero no es recomendable.

¿Qué son los argumentos en las funciones de Python Lambda?

Las funciones lambda, como las funciones de definición normales, admiten las diferentes formas de pasar argumentos. Estos incluyen: Argumento de solo palabra clave Argumentos de palabra clave/ Argumentos con nombre Varargs/ Lista de variables de argumentos Lista de variables de argumentos de palabra clave.

¿Qué son los cierres en las funciones de Python Lambda?

Los cierres o cierres léxicos son funciones en las que cada variable libre, excepto los parámetros, está vinculada a un valor particular en el ámbito de cierre de la función. Los cierres se pueden llamar desde cualquier lugar. Las funciones lambda, como las funciones de definición normales, pueden ser cierres.