Funções lambda
são pequenas funções anônimas (sem nome) que você pode definir em uma única linha. Elas são úteis para tarefas rápidas e que não exigem uma função completa e nomeada.
Sintaxe: lambda argumentos: expressao
Características:
if
, for
, while
(apenas expressões).Exemplo:
# Lambda simples
somar_lambda = lambda a, b: a + b
print(somar_lambda(4, 7)) # Saída: 11
sorted(iterable, key=lambda item: expressao)
:
# Usando lambda com higher-order functions (ex: sorted, map, filter)
lista_palavras = ["banana", "maçã", "laranja", "abacaxi"]
# Ordenar por tamanho da palavra
lista_palavras_ordenada = sorted(lista_palavras, key=lambda palavra: len(palavra))
print(lista_palavras_ordenada) # Saída: ['maçã', 'banana', 'laranja', 'abacaxi']
O que é sorted
? É uma função built-in do Python que retorna uma nova lista ordenada a partir de um iterável.
Parâmetro key
: Permite especificar uma função de um argumento que será usada para extrair uma chave de comparação de cada item do iterável. O sorted
então usará os resultados dessa função key
para ordenar os itens.
lista_palavras
é ["banana", "maçã", "laranja", "abacaxi"]
.
Para cada palavra
na lista, a função lambda palavra: len(palavra)
será aplicada.
Isso significa que sorted
vai ordenar a lista não pelas palavras em si, mas pelos seus comprimentos:
A ordem dos comprimentos é 4, 6, 7, 7.
Portanto, a lista resultante ordenada pelos comprimentos é ['maçã', 'banana', 'laranja', 'abacaxi']
.
Uso Prático: Ordenar listas de objetos complexos por um atributo específico (ex: ordenar uma lista de dicionários de produtos por preço, ou uma lista de alunos por nota).
map(funcao, iterable)
:
# Mapear uma função para cada item da lista
numeros = [1, 2, 3, 4]
quadrados = list(map(lambda x: x*x, numeros))
print(quadrados) # Saída: [1, 4, 9, 16]
O que é map
? É uma função built-in que aplica uma determinada função a cada item de um iterável (lista, tupla, etc.) e retorna um iterador (que pode ser convertido em lista, tupla, etc.) com os resultados.
funcao
é lambda x: x*x
(elevar ao quadrado).
iterable
é numeros
([1, 2, 3, 4]
).
Para cada x
em numeros
, a lambda x*x
é aplicada:
1*1 = 1
2*2 = 4
3*3 = 9
4*4 = 16
O map
gera [1, 4, 9, 16]
. O list()
converte o iterador em uma lista.
Uso Prático: Aplicar uma mesma transformação a todos os elementos de uma coleção de dados de forma concisa. (Ex: converter uma lista de strings para inteiros, aplicar uma fórmula em uma coluna de dados).
filter(funcao, iterable)
:
# Filtrar itens de uma lista
pares = list(filter(lambda x: x % 2 == 0, numeros))
print(pares) # Saída: [2, 4]
O que é filter
? É uma função built-in que constrói um iterador a partir de elementos de um iterável para os quais a função dada retorna True
. Ou seja, ela "filtra" os itens.