Função Lambda
As funções lambda em Python e outras linguagens de programação têm suas raízes diretamente em um conceito matemático chamado cálculo lambda. Introduzido pelo matemático Alonzo Church, o cálculo lambda é um sistema formal para expressar computação baseada em funções. Ele usa a notação lambda (λ) para definir funções anônimas. Portanto, podemos definir uma função lambda como uma pequena função anônima. Seu uso permite a criação de uma função sem precisar de uma declaração formal com o uso da palavra-chave def. Adicionalmente, funções lambda não possuem nome, daí o termo “função anônima”.
A definição de uma função lambda em códigos Python é concisa. Ela consiste no uso da palavra-chave lambda seguida de argumentos e de uma expressão.
# sintaxe geral
lambda argumentos: expressão
Veja um exemplo abaixo de uma comparação entre uma implementação de uma função tradicional com a mesma função implementada com o uso de uma função lambda.
# implementação tradicional
def calcula_quadrado(a):
res = a * a
return res
x = 11
print(calcula_quadrado(11)) # resultado: 121
# implementação com função lambda
x = lambda a : a * a
print(x(11)) # resultado: 121
Funções Lambda com Múltiplos Argumentos
Funções lambda podem ter qualquer número de argumentos. Porém, uma função lambda só pode ter uma única expressão. A expressão define a saída com base na(s) entrada(s). Veja um exemplo de implementação de função lambda com vários argumentos:
# exemplo de uma função lambda com vários argumentos
x = lambda a, b, c : a * b + c
print(x(5, 6, 20)) # resultado: 50
Por que usar funções lambda?
O poder de uma função lambda é melhor ilustrado nos casos em que ela é usada como uma função anônima dentro de outra função. Digamos que você tenha uma definição de função que usa um argumento, e esse argumento será multiplicado por um número desconhecido:
# exemplo de uma função lambda dentro de outra função
def minha_func(n):
return lambda a : a * n
meu_resultado = minha_func(20)
print(meu_resultado(11)) # resultado: 220
Neste caso, o uso de uma função lambda é apropriado. Funções lambda também são frequentemente usadas em combinação com funções internas como map e filter que funcionam com iteráveis e funções. Por exemplo, você pode usar uma função lambda com map para transformar elementos em uma lista, dispensando as definições explicitas do loop e de uma função. Veja um exemplo abaixo:
# calcula o quadrado dos itens de uma lista usando lambda e map
numeros = [1, 2, 3, 4]
quadrado_numeros = list(map(lambda x: x * x, numeros))
print(quadrado_numeros) # Resultado: [1, 4, 9, 16]
Funções lambda com DataFrames do Pandas
Funções lambdas também são comumente usadas para aplicar funções em DataFrames da biblioteca Pandas. Por exemplo, o método.apply() do Pandas permite aplicar uma função (incluindo uma função lambda) em uma linha ou coluna de um DataFrame.
# exemplo de uso de lambda com DataFrame do Pandas
import pandas as pd
# dataframe ilustrativo
data = {'Nomes': ['Alice', 'Aline', 'Joana', 'Maria'], 'Idade': [15, 30, 28, 14]}
df = pd.DataFrame(data)
# Adiciona uma nova coluna no DataFrame indicando as pessoas maiores de idade
df['Adultos'] = df['Idade'].apply(lambda x: x >= 18)
print(df)
# Resultados
# Nomes Idade Adultos
# 0 Alice 15 False
# 1 Aline 30 True
# 2 Joana 28 True
# 3 Maria 14 False
Com isso, os códigos Python ganham concisão e clareza.
Veja também:
Encontrou algum erro ou quer fazer uma sugestão? Por favor, entre em contato usando nosso formulário de contatos.