Para que serve e quando utilizo a função Lambda no Python?
Lambda no Python
3 Respostas
pense no lambda como uma função que vc definiu em runtime.
vc pode usar para simplificar determinadas operacoes. por exemplo, imagine que vc quer pegar um vetor de numeros e multiplicar todos os numeros por 2.
ao inves de vc fazer um loop explicito,
items = [1, 2, 3, 4, 5]
squared = []
for i in items:
squared.append(i**2)
print ("squared =", squared)
vc pode usar a função map
def square(x):
return x**2
items = [1, 2, 3, 4, 5]
squared = list(map(square, items))
print ("squared =", squared)
ou vc pode criar um lambda diretamente
items = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x**2, items))
print ("squared =", squared)
ou seja, o lambda te permite criar uma funçao sem nome. vc nao consegue chama-la pelo nome, vc precisa de uma variavel que vai armazenar essa funcao
sacou?
Consegui entender, tecnicamente o lambda descomplica na hora de determinar operações. Obrigado.
é mais do que simplificar operações.
lambdas trazem uma semantica funcional a linguagem
alem de vc poder trabalhar com objetos, vc pode trabalhar com funções
imagine que vc tem uma pagina http que retorna se um dado numero é primo. a pagina pode ser pensada como uma função que verifica se o numero possui algum divisor além dele mesmo e 1.
so que vc pode querer barrar numeros pares pois eles obviamente não são primos
e ai vc realiza que varios numeros foram consultados repetidas vezes, vc pode guardar na memoria os mais comuns
e vc pode querer fazer uma auditoria de quantos numeros ja foram consultados e por quem, e quanto tempo demorou
cada etapa dessas pode ser uma funçao que envelopa a outra. vc tambem pode usar objetos porem vc vai precisar seguir determinados padroes.
ao trabalhar com lambdas, vc tem uma expressividade difernente. se a funçao so depende dos parametros de entrada eh trivial testa-la por exemplo.