Las funciones Lambda en Python son una forma poderosa de crear funciones pequeñas y anónimas sobre la marcha. Estas funciones se utilizan normalmente para operaciones breves y sencillas en las que la sobrecarga de una definición de función completa sería innecesaria.
Mientras que las funciones tradicionales se definen utilizando la palabra clave def, las funciones Lambda se definen utilizando la palabra clave lambda y se integran directamente en líneas de código. En particular, se utilizan a menudo como argumentos para funciones integradas. Permiten a los desarrolladores escribir código limpio y legible al eliminar la necesidad de definiciones de funciones temporales.
En este artículo, cubriremos lo que hacen las funciones Lambda y su sintaxis. También brindaremos algunos ejemplos y mejores prácticas para usarlos, y discutiremos sus ventajas y desventajas.
Las funciones Lambda han sido parte de Python desde la versión 2.0, por lo que necesitarás:
En este tutorial, veremos cómo usar funciones Lambda con la biblioteca Pandas: una biblioteca de manipulación y análisis de datos de código abierto rápida, potente, flexible y fácil de usar. Si no lo tienes instalado, ejecuta lo siguiente:
pip install pandas
Primero, definamos la sintaxis que los desarrolladores deben usar para crear funciones Lambda.
Una función Lambda se define utilizando la palabra clave lambda, seguida de uno o más argumentos y una expresión:
lambda arguments: expression
Imaginemos que queremos crear una función Lambda que sume dos números:
add = lambda x, y: x y
Ejecute lo siguiente:
result = add(3, 5) print(result)
Esto resulta en:
8
Hemos creado una función anónima que toma dos argumentos, xey. A diferencia de las funciones tradicionales, las funciones Lambda no tienen nombre: por eso decimos que son "anónimas".
Además, no utilizamos la declaración de devolución, como lo hacemos en las funciones normales de Python. Entonces podemos usar la función Lambda a voluntad: se puede imprimir (como hicimos en este caso), almacenar en una variable, etc.
Ahora veamos algunos casos de uso comunes para funciones Lambda.
Las funciones Lambda se utilizan particularmente en situaciones en las que necesitamos una función temporalmente simple. En particular, se utilizan comúnmente como argumentos para funciones de orden superior.
Veamos algunos ejemplos prácticos.
map() es una función incorporada que aplica una función determinada a cada elemento de un iterable y devuelve un objeto de mapa con los resultados.
Por ejemplo, digamos que queremos calcular las raíces cuadradas de cada número en una lista. Podríamos usar una función Lambda como esta:
# Define the list of numbers numbers = [1, 2, 3, 4] # Calculate square values and print results squared = list(map(lambda x: x ** 2, numbers)) print(squared)
Esto resulta en:
[1, 4, 9, 16]
Ahora tenemos una lista que contiene las raíces cuadradas de los números iniciales.
Como podemos ver, esto simplifica enormemente los procesos para usar funciones sobre la marcha que no necesitan ser reutilizadas más adelante.
Ahora, supongamos que tenemos una lista de números y queremos filtrar los números pares.
Podemos usar una función Lambda de la siguiente manera:
# Create a list of numbers numbers = [1, 2, 3, 4] # Filter for even numbers and print results even = list(filter(lambda x: x % 2 == 0, numbers)) print(even)
Esto resulta en:
[2,4]
La función sorted() en Python devuelve una nueva lista ordenada de los elementos de cualquier iterable. Usando funciones Lambda, podemos aplicar criterios de filtrado específicos a estas listas.
Por ejemplo, supongamos que tenemos una lista de puntos en dos dimensiones: (x,y). Queremos crear una lista que ordene los valores de y de forma incremental.
Podemos hacerlo así:
# Creates a list of points points = [(1, 2), (3, 1), (5, -1)] # Sort the points and print points_sorted = sorted(points, key=lambda point: point[1]) print(points_sorted)
Y obtenemos:
[(5, -1), (3, 1), (1, 2)]
Dada su concisión, las funciones Lambda se pueden integrar en listas por comprensión para cálculos sobre la marcha.
Supongamos que tenemos una lista de números. Queremos:
Así es como podemos hacerlo:
# Create a list of numbers numbers = [1, 2, 3, 4] # Calculate and print the double of each one squared = [(lambda x: x ** 2)(x) for x in numbers] print(squared)
Y obtenemos:
[1, 4, 9, 16]
Teniendo en cuenta los ejemplos que hemos explorado, repasemos algunas de las ventajas de usar funciones Lambda:
Analicemos brevemente algunas limitaciones y desventajas de las funciones Lambda en Python:
Ahora que hemos considerado algunos pros y contras, definamos algunas prácticas recomendadas para utilizar las funciones Lambda de forma eficaz:
En determinados casos, técnicas de funciones Lambda más avanzadas pueden resultar de ayuda.
Veamos algunos ejemplos.
Las funciones lambda se pueden anidar para operaciones complejas.
Esta técnica es útil en escenarios donde necesitas tener múltiples transformaciones pequeñas en una secuencia.
Por ejemplo, supongamos que desea crear una función que calcule la raíz cuadrada de un número y luego sume 1. Así es como puede usar funciones Lambda para hacerlo:
# Create a nested lambda function nested_lambda = lambda x: (lambda y: y ** 2)(x) 1 # Print the result for the value 3 print(nested_lambda(3))
Obtienes:
10
Muchas bibliotecas de Python aprovechan las funciones de Lambda para simplificar tareas complejas de procesamiento de datos.
Por ejemplo, las funciones Lambda se pueden usar con Pandas y NumPy para simplificar la manipulación y transformación de datos.
Supongamos que tenemos un marco de datos con dos columnas. Queremos crear otra columna que sea la suma de las otras dos. En este caso, podemos usar funciones Lambda de la siguiente manera:
# Create the columns' data data = {'A': [1, 2, 3], 'B': [4, 5, 6]} # Create data frame df = pd.DataFrame(data) # Create row C as A B and print the dataframe df['C'] = df.apply(lambda row: row['A'] row['B'], axis=1) print(df)
Y obtenemos:
A B C 0 1 4 5 1 2 5 7 2 3 6 9
¡Esto es todo para nuestro recorrido rápido por las funciones Lambda en Python!
En este artículo, vimos cómo usar funciones Lambda en Python, exploramos sus ventajas y desventajas, algunas de las mejores prácticas y abordamos un par de casos de uso avanzados.
¡Feliz codificación!
PD. Si desea leer las publicaciones de Python tan pronto como salgan de imprenta, suscríbase a nuestro boletín Python Wizardry y ¡no se pierda ni una sola publicación!
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3