Una guía para principiantes para entender las funciones de Python Lambda
Lambdas en Python es 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 acerca de 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. Aprenda a utilizar el entorno virtual de Python. Aprenda a utilizar el entorno virtual de Python. Si es un desarrollador experimentado de Python, o simplemente está empezando, aprenda cómo para configurar un entorno virtual es esencial para cualquier proyecto de Python. Lee mas . Si ni siquiera quieres hacer eso, al menos deberías probar estos ejemplos con una cáscara de Python interactiva en línea. Prueba Python en tu navegador con estas carcasas interactivas en línea gratis Prueba Python en tu navegador con estas carcasas interactivas en línea gratis Al repasar estos ejemplos de Python o 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. Lee mas .
Qué es un Lambda en Python?
Un 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 ha funcionado bien para usted hasta ahora. Entonces, ¿por qué hay otra manera 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 un “real” La función sería demasiado grande y voluminosa.
Lambdas devuelve un objeto de función, que puede ser asignado a una variable. Lambdas puede tener cualquier número de argumentos, pero solo puede tener una expresión. No puedes llamar a otras funciones dentro de lambdas.
El uso más común de 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 trata con mayor detalle a continuación, bajo “¿Qué pasa con el mapa, filtro y reducir?”.
Cómo utilizar Lambdas en Python
Antes de mirar una función lambda, veamos una función super básica definida como “tradicional” camino:
def add_five (número): número de retorno + 5 impresión (add_five (número = 4))
Esta función es muy básica, pero sirve para ilustrar las 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 del número parámetro.
Así es como se ve como una función lambda:
add_five = número lambda: número + 5 impresión (add_five (número = 4))
En lugar de usar def, la palabra lambda se utiliza No se requieren corchetes, pero cualquier palabra después de lambda palabra 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 numero + 5.
No hay necesidad de usar el regreso palabra clave-la lambda hace esto por usted automáticamente.
Así es como crearías 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 reducir
La biblioteca central 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 todos los elementos de la lista, devolviendo la lista de elementos modificados como un objeto de mapa. los lista La función se utiliza para volver a convertir el objeto de mapa resultante en una lista..
Así es como usar el mapa sin un lambda:
list1 = [2, 4, 6, 8] print (list1) def add_five (number): número de retorno + 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 un argumento, pero ¿qué sucede si no desea crear una función cada vez que usa el mapa? Puedes usar un lambda en su lugar!
Así es como se ve ese mismo código, solo con la función reemplazada por un lambda:
list1 = [2, 4, 6, 8] print (list1) new_list = list (mapa (lambda x: x + 5, list1)) print (new_list)
Como puedes ver, el conjunto. add_five La función ya no es necesaria. En su lugar, la función lambda se utiliza para mantener las cosas ordenadas.
Con el filtrar Función, el proceso es muy parecido.. Filtrar toma una función y la aplica a todos los elementos de una lista y crea una nueva lista con solo los elementos que hicieron que la función devuelva Verdadero.
Primero, sin lambdas:
numbers = [1, 4, 5, 10, 20, 30] print (numbers) def greater_than_ten_func (number): si number> 10: return True else: return False new_numbers = list (filter (greater_than_ten_func, numbers)) imprimir (new_numbers )
Este código no tiene nada de malo, pero se está alargando un poco. Veamos cuántas líneas puede eliminar una lambda:
números = [1, 4, 5, 10, 20, 30] imprimir (números) new_numbers = list (filtro (lambda x: x> 10, números)) imprimir (new_numbers)
La función lambda ha reemplazado la necesidad del conjunto. mayor_than_ten_func! Y lo ha hecho en cinco simples palabras. Es por esto 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 móvil a todos los elementos de una lista. Puede usar esto para contar una suma total, o multiplicar todos los números juntos:
desde functools importar números reducidos = [10, 20, 30, 40] imprimir (números) def verano (a, b): devolver a + b resultado = reducir (verano, números) imprimir (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 con un lambda, no hay necesidad de una función:
desde functools importar números reducidos = [10, 20, 30, 40] imprimir (números) resultado = reducir (lambda a, b: a + b, números) imprimir (resultado)
Cosas a tener en cuenta con Python Lambdas
Estos ejemplos han demostrado lo fáciles que son las funciones lambda, junto con mapear, filtrar y reducir, desde la biblioteca central de Python. Sin embargo, hay algunos usos donde las funciones lambda no ayudan.
Si está haciendo algo más que una tarea básica, o si 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 parecer una expresión regular, es probable que sea el momento de refactorizar un método dedicado.
Para obtener más consejos, consulte nuestra guía de programación orientada a objetos en Python Guía de principiantes a Python Programación orientada a objetos Guía de principiantes a Python Programación orientada a objetos Para aprovechar al máximo las fortalezas de Python, querrá aprender cómo funciona Python Programación orientada a objetos (OOP). Lea más 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, lo guiaremos a través de todo lo que necesita saber acerca de Python como principiante. Lee mas .
Explorar más sobre: Tutoriales de codificación, Python.