Usar Lambda com a Função sorted()
Um dos casos de uso mais comuns para funções lambda é servir como uma função rápida e inline para funções de ordem superior (funções que aceitam outras funções como argumentos). Um exemplo principal é a função embutida sorted() do Python, que pode aceitar um argumento key. O key especifica uma função a ser chamada em cada elemento antes de fazer as comparações de ordenação.
Imagine que você tem uma lista de tuplas, onde cada tupla representa um produto e seu preço. Você deseja ordenar essa lista com base no preço.
Abra o arquivo ~/project/lambda_sorted.py no editor. Adicione o seguinte 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)
Neste código, key=lambda item: item[1] diz à função sorted() para usar o segundo elemento (item[1], que é o preço) de cada tupla como o valor para a ordenação. Isso é muito mais conciso do que definir uma função separada com def.
Salve o arquivo e execute-o a partir do terminal:
python3 ~/project/lambda_sorted.py
Você verá a lista de produtos ordenada pelo preço em ordem crescente.
[('Mouse', 25), ('Keyboard', 75), ('Laptop', 1200)]
Este padrão é extremamente comum e útil para ordenar estruturas de dados complexas de maneira simples e legível.