Nesta edição, conheça um pouco sobre o uso da palavra reservada ‘lambda’ em Python.
Em Python, existe um conceito bastante poderoso e integrado à linguagem que é chamado de expressão lambda ou forma lambda. O conceito em si é bastante simples: consiste em uma função que é atribuida a um objeto. Por conter a palavra reservada lambda o objeto se comportará como uma função. Uma função lambda é muito pratica, pois funciona como uma função normal, mas só contem uma linha. Funções lambda não utilizam a palavra reservada return.
Uma função qualquer:
def name(arguments):
return expression
Uma função utilizando lambda:
variable = lambda arguments: expression
Uma função comum que retorna o parâmetro elevado ao quadrado:
def f(x):
return x**2
O mesmo exemplo utilizando uma função lambda:
f = lambda x: x**2
Também é possível criar expressões lambda sem atribuir a variável alguma
print (lambda x:x**3)(3)
Outros exemplos:
Uma função lambda com dois parâmetros
f = lambda a, b : a+b
O uso de palavra lambda é bem extenso e ela pode ser utilizada até como objeto de retorno de uma outra função:
def incrementador(n):
return lambda x:x:+n
Podemos utilizar expressões lambdas em outras funções que já estão acopladas à linguagem como filter, map e reduce. Uma função que retorna os números pares entre 0 e 9:
num_pares = filter(lambda x: x % 2 == 0, range(10))
Uma expressão que ele ao quadrado os números em uma lista, no caso, de 0 a 9.
map(lambda x: x**2, range(10))
Já este exemplo faz o produtório dos elementos da lista
reduce(lambda x, y: x*y, range(1,5))
Pode-se também criar facilmente uma expressão que conte o tamanho das palavras em uma lista.
map(lambda x: len(x),'Este exemplo conta o tamanho das palavras'.split())
As funções lambda são sempre opcionais, tudo que fazemos com ela, podemos fazer também com uma função normal. O uso de expressões lambda permite que você possa representar a lógica de uma função sem precisar defini-la explicitamente. Isso pode deixar o código mais facil, mais claro e mais rápido de ser lido
Jornal PETNews - Edição: Jessika Renally - Revisão: Tiaraju Smaneoto e Lívia Sampaio
Grupo PET Computação UFCG, 2013. All rights reserved.