Qué son y cómo utilizar expresiones Lambda en Python

Pueden parecer confusas, ¡pero son sencillas y súper útiles!

Photo by Hello I'm Nik 🍌 on Unsplash

Desde que estoy aprendiendo Python, las funciones han desafiado las leyes que rigen mi pensamiento. En cierto modo debo confesar que me parecían demasiado complicadas y trataba de evitarlas. Desde luego, no era consciente de su verdadera utilidad.

Fue el pasado sábado (momento en el que me vi inmerso en un lab sobre Lambdas en Iron Hack) cuando algo hizo ‘click’ en mi cabeza y empecé a enteder el potencial de estas expresiones. Esa sintaxis condensada que nos permite escribir funciones simples en tan solo una línea, me pareció algo mágico.

Definición de Lambda

En Python, una función Lambda se refiere a una pequeña función anónima. Las llamamos “funciones anónimas” porque técnicamente carecen de nombre.

Al contrario que una función normal, no la definimos con la palabra clave estándar def que utilizamos en Python. En su lugar, las funciones Lambda se definen como una línea que ejecuta una sola expresión. Este tipo de funciones pueden tomar cualquier número de argumentos, pero solo pueden tener una expresión.

Sintaxis básica

Todas las funciones Lambda en Python tienen exactamente la misma sintaxis:

#Escribo p1 y p2 como parámetros 1 y 2 de la función.lambda p1, p2: expresión 

Como mejor te lo puedo explicar es enseñándote un ejemplo básico, vamos a ver una función normal y un ejemplo de Lambda:

#Aquí tenemos una función creada para sumar.
def suma(x,y):
return(x + y)
#Aquí tenemos una función Lambda que también suma.
lambda x,y : x + y
#Para poder utilizarla necesitamos guardarla en una variable.
suma_dos = lambda x,y : x + y

Al igual que ocurre en las list comprehensions, lo que hemos hecho es escribir el código en una sola línea y limpiar la sintaxis innecesaria.

En lugar de usar def para definir nuestra función, hemos utilizado la palabra clave lambda; a continuación escribimos x, y como argumentos de la función, y x + y como expresión. Además, se omite la palabra clave return, condensando aún más la sintaxis.

Por último, y aunque la definición es anónima, la almacenamos en la variable suma_dos para poder llamarla desde cualquier parte del código, de no ser así tan solo podríamos hacer uso de ella en la línea donde la definamos.

Aplicación de Lambdas

Quiero darte algunas ideas de dónde se podrían aplicar las Lambdas. A continuación he creado algunos ejemplos aplicando las Lambdas con diferentes objetivos. Así podras entender mejor como funcionan.

Lambda en Pandas DataFrame con el método apply()

Se me ocurre que podemos aplicar una función Lambda a data cleaning en Pandas con el método apply(), algo que creo nos puede ser de utilidad para evitar crear un bucle que vaya recorriendo todo el DataFrame:

Aplicando Lambdas y el método apply() para pasar grados celsius a kelvin en un DataFrame de Pandas.

Output :

Londres      (295, 15)
Madrid (309, 15)
Barcelona (293, 15)
Sevilla (299, 15)
Cádiz (303, 15)
Lima (311, 15)
Name: Kelvin, dtype: object

Lambda en listas con el método filter()

La función filter() es capaz de devolver una nueva colección con los elementos filtrados que cumplan una condición.

Podemos comprobar, por ejemplo, cuales son los números pares de una lista dada. Para ello le pasaremos una lista a una Lambda de la siguiente forma:

Aplicando Lambdas y el método filter() para extraer los números pares a una lista nueva.

Output :

[38, 24, 42, 2, 12, 34, 92, 122, 1008, 26]

Conclusiones

Espero que este artículo te resulte interesante, que te ayude y entiendas los ejemplos y, sobre todo, que puedas poner en práctica en tu día a día todo lo aprendido.

A mi me ha servido de mucho poder transmitirte mi conocimiento ;)

Si te ha gustado mi artículo sobre “Qué son y cómo utilizar expresiones Lambda en Python” puedes darme un “clap”, nada me haría más ilusión : ) y si quieres saber más sobre mis futuros artículos, puedes seguirme en Medium y en Twitter @borjauria.

Data Analyst 🚀 working at roams.es . Luckily, we have #Python 🐍#DataAnalytics ♥ | #Pandas | #webscraping | #PowerBI | Learning from everyone & 🤖 , every day!

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store