Puedes crear tus propias funciones de Python usando la palabra clave def, cabeceras de función, docstrings y cuerpos de función. Sin embargo, existe una forma más rápida de escribir funciones sobre la marcha: se llaman funciones lambda porque se definen con la palabra clave lambda.
Algunas definiciones de funciones son lo bastante sencillas como para convertirlas en una función lambda. Al hacerlo, escribes menos líneas de código, lo cual es fantástico y muy útil, sobre todo cuando desarrollas y mantienes programas grandes.
lambda function
Aquí reescribimos nuestra función raise_to_power como una función lambda. Tras la palabra clave lambda, indicamos los nombres de los argumentos; después usamos dos puntos seguidos de la expresión que especifica qué queremos que devuelva la función.
Como comentábamos, las funciones lambda te permiten escribir funciones de forma rápida y "sin florituras". No te recomendamos usarlas siempre, pero hay situaciones en las que vienen genial, como en el ejemplo siguiente.
map() and lambda function
La función map recibe dos argumentos: una función y una secuencia (por ejemplo, una lista), y aplica la función a todos los elementos de la secuencia. Podemos pasar funciones lambda a map sin siquiera ponerles nombre; en ese caso, hablamos de funciones anónimas.
En este ejemplo, usamos map() con una función lambda que eleva al cuadrado todos los elementos de la lista y guardamos el resultado en square_all.
nums =[48,6,9,21,1]
square_all =map(lambda num: num **2, nums)print(square_all)Con la tecnología de
Ejemplo interactivo de cómo escribir una función lambda
La función echo_word de abajo recibe 2 parámetros: una cadena, word1, y un entero, echo. Devuelve una cadena que es la concatenación de echo copias de word1.
Vas a convertir esta función sencilla en una función lambda.
defecho_word(word1, echo):"""Concatenate echo copies of word1."""
words = word1 * echo
return words
Con la tecnología de
En el siguiente ejemplo, harás lo siguiente:
Define una función lambda echo_word usando las variables word1 y echo. Reproduce lo que hace la definición original de echo_word() de arriba.
Llama a echo_word() con el argumento de cadena 'hey' y el valor 5, en ese orden. Asigna la llamada a result. Por último, imprime la variable result.
# Define echo_word as a lambda function: echo_word
echo_word =(lambda word1, echo: word1 * echo)# Call echo_word: result
result = echo_word('hey',5)# Print resultprint(result)Con la tecnología de
Al ejecutar el código anterior, se obtiene el siguiente resultado:
Aprende sobre las funciones lambda de Python, su finalidad y cuándo utilizarlas. Incluye ejemplos prácticos y mejores prácticas para una implementación eficaz.
Descubre cómo escribir funciones en Python reutilizables y eficientes. Domina los parámetros, las sentencias return y temas avanzados como las funciones lambda. Organiza mejor tu código con main() y otras buenas prácticas.
¡Aprende todo sobre la comprensión de diccionarios en Python: cómo puedes utilizarla para crear diccionarios, para sustituir los for loops (anidados) o las funciones lambda por map(), filter() y reduce(), ...!
Puedes crear tus propias funciones de Python usando la palabra clave def, cabeceras de función, docstrings y cuerpos de función. Sin embargo, existe una forma más rápida de escribir funciones sobre la marcha: se llaman funciones
lambdaporque se definen con la palabra clavelambda.Algunas definiciones de funciones son lo bastante sencillas como para convertirlas en una función lambda. Al hacerlo, escribes menos líneas de código, lo cual es fantástico y muy útil, sobre todo cuando desarrollas y mantienes programas grandes.
lambdafunctionAquí reescribimos nuestra función
raise_to_powercomo una función lambda. Tras la palabra clavelambda, indicamos los nombres de los argumentos; después usamos dos puntos seguidos de la expresión que especifica qué queremos que devuelva la función.Como comentábamos, las funciones
lambdate permiten escribir funciones de forma rápida y "sin florituras". No te recomendamos usarlas siempre, pero hay situaciones en las que vienen genial, como en el ejemplo siguiente.map()andlambdafunctionLa función
maprecibe dos argumentos: una función y una secuencia (por ejemplo, una lista), y aplica la función a todos los elementos de la secuencia. Podemos pasar funcioneslambdaamapsin siquiera ponerles nombre; en ese caso, hablamos de funciones anónimas.En este ejemplo, usamos
map()con una funciónlambdaque eleva al cuadrado todos los elementos de la lista y guardamos el resultado ensquare_all.Imprimir
square_allmuestra que es un objetomap, así que, para ver qué devuelve, lo convertimos a lista con list y mostramos el resultado.Ejemplo interactivo de cómo escribir una función
lambdaLa función
echo_wordde abajo recibe 2 parámetros: una cadena,word1, y un entero,echo. Devuelve una cadena que es la concatenación deechocopias deword1.Vas a convertir esta función sencilla en una función lambda.
En el siguiente ejemplo, harás lo siguiente:
echo_wordusando las variablesword1yecho. Reproduce lo que hace la definición original deecho_word()de arriba.echo_word()con el argumento de cadena'hey'y el valor5, en ese orden. Asigna la llamada aresult. Por último, imprime la variableresult.Al ejecutar el código anterior, se obtiene el siguiente resultado:
Pruébalo tú mismo.
Para saber más sobre las funciones lambda, echa un vistazo a este vídeo de nuestro curso Python Data Science Toolbox (Part 1).
Este contenido está extraído del curso Python Data Science Toolbox (Part 1) de DataCamp, impartido por Hugo Bowne-Anderson.
Consulta el tutorial de funciones en Python de DataCamp.