Lambda no Python

Para que serve e quando utilizo a função Lambda no Python?

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?

1 curtida

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.