Usar Lambda con la Función sorted()
Uno de los casos de uso más comunes para las funciones lambda es servir como una función rápida en línea para funciones de orden superior (funciones que toman otras funciones como argumentos). Un ejemplo principal es la función incorporada sorted() de Python, que puede aceptar un argumento key. La key especifica una función que se llamará en cada elemento antes de realizar las comparaciones de ordenación.
Imagine que tiene una lista de tuplas, donde cada tupla representa un producto y su precio. Quiere ordenar esta lista basándose en el precio.
Abra el archivo ~/project/lambda_sorted.py en el editor. Agregue el siguiente código:
## A list of tuples (product, price)
products = [('Laptop', 1200), ('Mouse', 25), ('Keyboard', 75)]
## Sort the list by price (the second element of each tuple) using a lambda function
sorted_products = sorted(products, key=lambda item: item[1])
## Print the sorted list
print(sorted_products)
En este código, key=lambda item: item[1] le indica a sorted() que use el segundo elemento (item[1], que es el precio) de cada tupla como el valor para la ordenación. Esto es mucho más conciso que definir una función separada con def.
Guarde el archivo y ejecútelo desde la terminal:
python3 ~/project/lambda_sorted.py
Verá la lista de productos ordenada por precio en orden ascendente.
[('Mouse', 25), ('Keyboard', 75), ('Laptop', 1200)]
Este patrón es extremadamente común y útil para ordenar estructuras de datos complejas de una manera simple y legible.