Saltar al contenido principal

Tutorial de funciones lambda en Python

Aprende una forma más rápida de escribir funciones al vuelo con las funciones lambda.
· 3 min leer

Explora con IA

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.

raise_to_power = lambda x, y: x ** y

raise_to_power(2, 3)
8

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)
<map object at 0x103e065c0>

Imprimir square_all muestra que es un objeto map, así que, para ver qué devuelve, lo convertimos a lista con list y mostramos el resultado.

print(list(square_all))
[2304, 36, 81, 441, 1]

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.

def echo_word(word1, echo):
    """Concatenate echo copies of word1."""
    words = word1 * echo
    return words

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 result
print(result)

Al ejecutar el código anterior, se obtiene el siguiente resultado:

heyheyheyheyhey

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.

Temas

Relacionado

Tutorial

Funciones en Python: cómo llamar y escribir funciones