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

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

Las lambdas en Python son una de las características más útiles, importantes e interesantes que debe conocer. Desafortunadamente, también son fáciles de malinterpretar y equivocarse.





En este artículo, explicaremos todo lo que necesita saber sobre estas funciones misteriosas, 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. Si ni siquiera quiere hacer eso, al menos debería probar estos ejemplos con un shell de Python interactivo en línea .





¿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 antes, probablemente haya definido sus funciones usando el def palabra clave, y hasta ahora te ha funcionado bien. 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 una función 'real' sería demasiado grande y voluminosa.

Lambdas devuelve 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 de las funciones lambda es en código que requiere una función simple de una línea, donde sería excesivo escribir una función normal completa. Esto se trata con más detalle a continuación, en '¿Qué hay de 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 de la manera 'tradicional':





|_+_|

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

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

|_+_|

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

No es necesario utilizar el regreso palabra clave --- la lambda hace esto automáticamente.

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

cómo tomar una captura de pantalla en snap sin que ellos lo sepan
|_+_|

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 central de Python tiene tres métodos llamados mapa , reducir , y filtrar . Estos métodos son posiblemente las mejores razones para usar funciones lambda.

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

A continuación, se explica cómo utilizar el mapa sin una lambda:

|_+_|

Esta función de mapa es bastante útil, pero podría ser mejor. los add_five la función se pasa como un argumento, pero ¿qué sucede si no desea crear una función cada vez que usa 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:

la ventana no pudo completar el formato
|_+_|

Como puede 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 similar. Filtrar toma una función y la aplica a cada elemento en una lista y crea una nueva lista con solo los elementos que causaron que la función devuelva True.

Primero, sin lambdas:

|_+_|

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

|_+_|

La función lambda ha reemplazado la necesidad de toda mayor_than_ten_func ! Y lo ha hecho en cinco simples palabras. Es por eso que las lambdas son poderosas: reducen el desorden para tareas simples.

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

|_+_|

Este ejemplo debe 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 con una lambda, no hay necesidad de una función:

|_+_|

Cosas a tener en cuenta con Python Lambdas

Estos ejemplos han demostrado cuán fáciles son las funciones lambda, junto con mapear, filtrar y reducir, desde la biblioteca central de Python. Aún así, hay algunos usos en los que 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 únicas, pero solo deben tener una expresión. Si su lambda comienza a verse como una expresión regular, entonces probablemente sea el momento de refactorizar en un método dedicado.

Para obtener más consejos, consulte nuestro guía para la programación orientada a objetos en Python y consulte nuestra guía de preguntas frecuentes para principiantes de Python.

Cuota Cuota Pío Correo electrónico 3 formas de comprobar si un correo electrónico es real o falso

Si ha recibido un correo electrónico que parece un poco dudoso, siempre es mejor verificar su autenticidad. Aquí hay tres formas de saber si un correo electrónico es real.

Leer siguiente
Temas relacionados
  • Programación
  • Pitón
  • Tutoriales de codificación
Sobre el Autor Joe Coburn(136 Artículos publicados)

Joe es licenciado en Ciencias de la Computación por la Universidad de Lincoln, Reino Unido. Es un desarrollador de software profesional, y cuando no está volando drones o escribiendo música, a menudo se le puede encontrar tomando fotos o produciendo videos.

Más de Joe Coburn

Suscríbete a nuestro boletín

¡Únase a nuestro boletín de noticias para obtener consejos técnicos, reseñas, libros electrónicos gratuitos y ofertas exclusivas!

Haga clic aquí para suscribirse