Lambda no Python

3 respostas Resolvido
programaçãopython
Rosmano

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

3 Respostas

peczenyj
Solucao aceita

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?

Rosmano

Consegui entender, tecnicamente o lambda descomplica na hora de determinar operações. Obrigado.

peczenyj

é 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.

Criado 18 de setembro de 2018
Ultima resposta 18 de set. de 2018
Respostas 3
Participantes 2