Sobre funções Lambda
As funções lambda em python são funções sem nome e anônimas que podem ser usadas para criar expressões que retornam algum tipo de valor com base nos cálculos implementados na própria expressão. A lógica nessas funções lambda pode ser escrita de forma concisa, geralmente algo que se encaixa facilmente em uma linha. Às vezes, eles podem ser difíceis de ler, especialmente se as pessoas não estiverem bem familiarizadas com as funções Lambda. No entanto, eles têm a vantagem de manter as coisas juntas dentro de blocos de código e ajudam a entender melhor o contexto.
Sintaxe das funções Lambda
A sintaxe de uma função Lambda em Python se parece com isto:
multiplique = lambda x, y: x * yA primeira parte da expressão lambda, logo antes do símbolo de dois pontos (:), usa parâmetros como argumentos. A segunda parte, após o símbolo de dois pontos, deve ser um valor de retorno. Este valor de retorno pode ser uma expressão com lógica também. Na verdade, as funções Lambda são usadas quase o tempo todo para implementar alguma lógica nos argumentos fornecidos e, em seguida, retornar o resultado final.
Para testar a função Lambda declarada acima, você pode usar a seguinte instrução:
imprimir (multiplicar (3, 4))Você deve obter a seguinte saída:
12A mesma função lambda seria escrita da seguinte maneira:
def multiply (x, y):retornar x * y
imprimir (multiplicar (3, 4))
Ambos os exemplos de código fornecerão a mesma saída. Mais alguns exemplos de funções Lambda são explicados abaixo.
Passe funções Lambda como argumentos
Você pode usar funções Lambda para fazer cálculos e fornecer o valor de retorno como argumentos para outras funções. O método de classificação em Python usa um argumento de "chave", onde você pode especificar uma função que pode ser chamada que recebe um único argumento para fins de classificação. Em vez de primeiro definir uma função separada que retorna uma chave e, em seguida, fornecer a referência da função para o argumento, você pode simplesmente usar uma função Lambda.
frutas = [(2, 'maçãs'), (4, 'laranjas'), (3, 'bananas')]frutas.classificar (chave = elemento lambda: elemento [0])
imprimir (frutas)
O código acima produzirá a seguinte saída:
[(2, 'maçãs'), (3, 'bananas'), (4, 'laranjas')]Você pode usar lambda em qualquer método que tenha uma função chamável como argumento (método de filtro, por exemplo).
Use Funções Lambda em Compreensão de Lista
Você pode usar Lambda em compreensões de lista e uma lista será devidamente criada a partir dos valores retornados pela expressão Lambda.
get_square = lambda a: a * aquadrados = [get_square (x) para x no intervalo (5)]
imprimir (quadrados)
Isso produzirá a seguinte saída:
[0, 1, 4, 9, 16]O exemplo de código acima também pode ser escrito da seguinte maneira, em que “x” é fornecido para a função lambda como um argumento:
quadrados = [(lambda x: x * x) (x) para x no intervalo (5)]imprimir (quadrados)
Este exemplo apenas ilustra o uso de funções Lambda em compreensões de lista. Caso contrário, você pode calcular facilmente os quadrados usando uma declaração de compreensão de lista mínima:
imprimir ([x * x para x no intervalo (5)])Use funções Lambda em dicionários Python
O exemplo de código abaixo ilustra as funções Lambda usadas nos pares de valores-chave em um dicionário Python. Depois de definidas, você pode chamar essas funções a qualquer momento.
calcular = 'soma': lambda a, b: a + b, 'diferença': lambda a, b: a - bimprimir (calcular ['soma'] (4, 5))
imprimir (calcular ['diferença'] (4, 5))
Você deve obter a seguinte saída após executar o código acima:
9-1
Conclusão
As funções lambda fornecem uma maneira excelente de escrever expressões abreviadas e manter as coisas limpas e organizadas sem a criação desnecessária de muitas funções nomeadas. No entanto, o uso excessivo de funções do Lambda pode tornar o código difícil de ler, especialmente quando o código está sendo visto por mais de uma pessoa. É melhor ter um código mais legível (mesmo que seja prolixo) do que algo que pode ser um pouco difícil de entender em revisitas.