Una guía para principiantes para comprender las funciones de Python Lambda

  • Owen Little
  • 0
  • 2414
  • 585
Anuncio

Las Lambdas en Python son una de las características más útiles, importantes e interesantes para conocer. Desafortunadamente, también son fáciles de entender mal y equivocarse.

En este artículo, explicaremos todo lo que necesita saber sobre estas misteriosas funciones, cómo usarlas y por qué son útiles..

Antes de sumergirse en estos ejemplos prácticos, es posible que desee configurar un entorno virtual de Python. Aprenda a usar el entorno virtual de Python. Aprenda a usar el entorno virtual de Python. Si usted es un desarrollador experimentado de Python, o si recién está comenzando, aprenderá cómo configurar un entorno virtual es esencial para cualquier proyecto de Python. . Si ni siquiera quiere hacer eso, entonces al menos debería probar estos ejemplos con un shell interactivo de Python en línea. Pruebe Python en su navegador con estos shells interactivos en línea gratuitos. Pruebe Python en su navegador con estos shells interactivos en línea gratuitos. Al revisar estos ejemplos de Python o al revisar los conceptos básicos de matrices y listas, puede probar el código directamente en su navegador. Aquí están los mejores intérpretes de Python en línea que hemos encontrado. .

¿Qué es una Lambda en Python??

Una lambda es simplemente una forma de definir una función en Python. A veces se les conoce como “operadores lambda” o “funciones lambda”.

Si ha usado Python anteriormente, probablemente haya definido sus funciones usando el def palabra clave, y hasta ahora ha funcionado bien para usted. Entonces, ¿por qué hay otra forma de hacer lo mismo??

La diferencia es que las funciones lambda son anónimas. Es decir, son funciones que no necesitan ser nombradas. Se utilizan para crear funciones pequeñas y únicas en los casos en que “real” la función sería demasiado grande y voluminosa.

Las lambdas devuelven un objeto de función, que se puede asignar a una variable. Las lambdas pueden tener cualquier número de argumentos, pero solo pueden tener una expresión. No puede llamar a otras funciones dentro de lambdas.

El uso más común para las funciones lambda es en el código que requiere una función simple de una línea, donde sería excesivo escribir una función normal completa. Esto se cubre con mayor detalle a continuación, debajo “¿Qué pasa con el mapa, filtro y reducción??”.

Cómo usar Lambdas en Python

Antes de mirar una función lambda, veamos una función súper básica definida “tradicional” camino:

def add_five (número): número de retorno + 5 print (add_five (número = 4))

Esta función es muy básica, pero sirve para ilustrar lambdas. El tuyo puede ser más complejo que esto. Esta función agrega cinco a cualquier número que se le pase a través de número parámetro.

Así es como se ve como una función lambda:

add_five = número lambda: número + 5 print (add_five (número = 4))

En lugar de usar def, la palabra lambda es usado No se requieren corchetes, pero las palabras que siguen al lambda Las palabras clave se crean como parámetros. Los dos puntos se usan para separar los parámetros y la expresión. En este caso, la expresión es número + 5.

No hay necesidad de usar el regreso keyword-the lambda hace esto por usted automáticamente.

Así es como crearía una función lambda con dos argumentos:

add_numbers_and_five = lambda number1, number2: number1 + number2 + 5 print (add_numbers_and_five (number1 = 4, number2 = 3))

Si aún no está seguro del punto de las lambdas, la siguiente sección se sumergirá y lo ayudará a ver la luz..

Python Lambdas con mapa, filtro y reducción

La biblioteca principal de Python tiene tres métodos llamados mapa, reducir, y filtrar. Estos métodos son posiblemente las mejores razones para usar las funciones lambda.

los mapa La función espera dos argumentos: una función y una lista. Toma esa función y la aplica a cada elemento de la lista, devolviendo la lista de elementos modificados como un objeto de mapa. los lista La función se utiliza para convertir el objeto de mapa resultante nuevamente en una lista.

Aquí se explica cómo usar el mapa sin una lambda:

list1 = [2, 4, 6, 8] print (list1) def add_five (number): return number + 5 new_list = list (map (add_five, list1)) print (new_list)

Esta función de mapa es bastante útil, pero podría ser mejor. la add_five La función se pasa como argumento, pero ¿qué sucede si no desea crear una función cada vez que utiliza el mapa? Puedes usar una lambda en su lugar!

Así es como se ve ese mismo código, solo con la función reemplazada por una lambda:

list1 = [2, 4, 6, 8] print (list1) new_list = list (map (lambda x: x + 5, list1)) print (new_list)

Como puedes ver, todo add_five La función ya no es necesaria. En cambio, la función lambda se usa para mantener las cosas ordenadas.

Con el filtrar función, el proceso es muy parecido. Filtrar toma una función y la aplica a cada elemento de una lista y crea una nueva lista con solo los elementos que causaron que la función devuelva True.

Primero, sin lambdas:

números = [1, 4, 5, 10, 20, 30] print (números) def Greater_than_ten_func (número): if number> 10: return True else: return False new_numbers = list (filter (Greater_than_ten_func, números)) print (new_numbers )

No hay nada malo con este código, pero se está haciendo un poco largo. Veamos cuántas líneas puede eliminar una lambda:

números = [1, 4, 5, 10, 20, 30] print (números) nuevos_números = lista (filtro (lambda x: x> 10, números)) impresión (nuevos_números)

La función lambda ha reemplazado la necesidad de todo Greater_Than_ten_func! Y se hace en cinco palabras simples. Es por eso que las lambdas son poderosas: reducen el desorden para tareas simples.

Finalmente, veamos reducir. Reducir es otra función genial de Python. Aplica un cálculo continuo a todos los elementos de una lista. Puede usar esto para sumar un total de sumas o multiplicar todos los números:

from importctools import reduce números = [10, 20, 30, 40] print (números) def verano (a, b): devuelve a + b resultado = reduce (verano, números) print (resultado)

Este ejemplo necesita importar reducir desde el functools módulo, pero no se preocupe, el módulo functools es parte de la biblioteca central de Python.

La historia es muy parecida a una lambda, no hay necesidad de una función:

from functools import reduce números = [10, 20, 30, 40] print (números) resultado = reduce (lambda a, b: a + b, números) print (resultado)

Cosas a tener en cuenta con Python Lambdas

Estos ejemplos han mostrado cuán fáciles son las funciones lambda, junto con el mapa, el filtro y la reducción, desde la biblioteca central de Python. Aún así, hay algunos usos donde las funciones lambda no ayudan.

Si está haciendo algo más que una tarea básica, o desea llamar a otros métodos, use una función normal. Las lambdas son excelentes para funciones anónimas, pero solo deben tener una sola expresión. Si su lambda comienza a verse como una expresión regular, entonces probablemente sea hora de refactorizar a un método dedicado.

Para obtener más consejos, consulte nuestra guía de programación orientada a objetos en Python Una guía para principiantes a la programación orientada a objetos de Python Una guía para principiantes a la programación orientada a objetos de Python Para aprovechar al máximo las fortalezas de Python, querrá aprender cómo funciona Python con programación orientada a objetos (OOP). y consulte nuestra guía de preguntas frecuentes para principiantes de Python Las preguntas más frecuentes sobre la programación de Python Las preguntas más frecuentes sobre la programación de Python En este artículo, le mostraremos todo lo que necesita saber sobre Python como principiante. .




Nadie ha comentado sobre este artículo todavía.

Sobre tecnología moderna, simple y asequible.
Tu guía en el mundo de la tecnología moderna. Aprenda a usar las tecnologías y los dispositivos que nos rodean todos los días y aprenda a descubrir cosas interesantes en Internet.