Neste artigo, tentaremos aprender sobre Python Lambda.
Definição
Lambda é uma função definida sem um nome. Isso pode levar vários argumentos, mas apenas uma expressão é permitida que é avaliada e retornada. Onde os objetos de função são necessários, podemos usar a função lambda.
Sintaxe:
argumentos lambda: expressão
Exemplo 1: A função abaixo é usada para calcular o cubo de um número.
cubo def (a):retornar a * a * a
imprimir (cubo (3))
A função acima pode ser escrita usando lambda, conforme mostrado abaixo:
p = lambda x: x * x * ximprimir (p (3))
Exemplo 2: A função abaixo é usada para calcular a soma de dois números.
def soma_2 (x, y):retornar x + y
imprimir (soma_2 (10,20))
A função acima pode ser escrita usando lambda, conforme mostrado abaixo:
p = lambda x, y: x + yimprimir (p (10,20))
Exemplo 3: O exemplo abaixo para lambda leva vários argumentos.
p = lambda x, y, z: x + y + zimprimir (p (10, 5, 3))
Exemplo 4: Esta função multiplica o número por 2 e pode ser escrita usando a função Lambda conforme abaixo:
def func (n):retornar lambda x: x * n
multiply_by_2 = func (2)
imprimir (multiply_by_2 (11))
imprimir (multiply_by_2 (15))
Exemplo 5: A função assume a função como um argumento e retorna o resultado.
argumento_função = lambda p, f: p + f (p)imprimir (argumento_função (5, lambda p: p * p))
imprimir (argumento_função (10, lambda x: x - 3))
imprimir (argumento_função (10, lambda x: x + 5))
imprimir (argumento_função (10, lambda x: x / 5))
Exemplo 6: No exemplo abaixo, lambda é usado para classificar os valores.
# (nome, sobrenome, idade)data = [("Sachin", "Tendulkar", "42"), ("Rahul", "Dravid", "44"), ("Virendra", "Sehwag", "40")]
dados.classificar (chave = lambda x: x [0]) # classificar com base no nome
imprimir (dados)
data = [("Sachin", "Tendulkar", "42"), ("Rahul", "Dravid", "44"), ("Virendra", "Sehwag", "40")]
dados.sort (key = lambda x: x [1]) # sort com base no sobrenome
imprimir (dados)
data = [("Sachin", "Tendulkar", "42"), ("Rahul", "Dravid", "44"), ("Virendra", "Sehwag", "40")]
dados.sort (key = lambda x: x [2]) # sort com base na idade
imprimir (dados)
Agora, vá para o interpretador python3.
A função lambda é usada em muitos métodos embutidos. A seguir estão alguns exemplos:
1. Mapa
Esta função mapeia cada elemento em sequência usando a função lambda.
Sintaxe:
mapa (função, seq)
Ex:
nums = [1,2,3,4,5,6]
Aqui, vamos multiplicar cada elemento da lista por 2.
mul_2 = mapa (lambda x: x * 2, nums)
print (list (mul_2)) # Retorna o objeto do mapa e o typecasting como uma lista.
Na função acima, cada elemento da lista é passado para a função lambda e a função lambda irá multiplicá-lo por 2.
nums = [1,2,3,4,5,6]mul_2 = mapa (lambda x: x * 2, nums)
imprimir (lista (mul_2))
2. Filtro
Esta função filtra todos os elementos de uma lista para a qual a função lambda retorna True.
Sintaxe:
filtro (função, seq)
Ex:
nums = [0,1,2,3,4,5,6,7,8,9,10]
odd_nums = filter (lambda x: x% 2, nums)
print (list (odd_nums)) # Retorna o objeto do mapa, e o typecasting como uma lista.
odd_nums = filter (lambda x: x% 2, nums)
imprimir (lista (odd_nums))
3. Reduzir
Esta função retorna um único valor aplicando a função func () ao seq.
Sintaxe:
reduzir (função, seq)
Ex:
nums = [0,1,2,3,4,5,6,7,8,9,10]
valor = reduzir (lambda x, y: x + y, nums)
imprimir (valor)
Na lista acima, ele pegará os 2 primeiros elementos e realizará a adição. O resultado de uma adição será adicionado ao terceiro elemento e assim por diante. Finalmente, ele retornará um único valor.
Observação: este método não está disponível na versão python3 +.
nums = [0,1,2,3,4,5,6,7,8,9,10]valor = reduzir (lambda x, y: x + y, nums)
imprimir (valor)
Conclusão
Neste artigo, aprendemos muitos aspectos da função lambda. Dependendo das necessidades do programa, podemos usá-lo e fazer uma codificação Python melhor. Isso é mais comumente usado para passar argumentos para outra função (por exemplo, vimos as funções acima mapear, filtrar e reduzir).