Você pode escrever suas próprias funções Python usando a palavra-chave def, cabeçalhos de função, docstrings e corpos de função. No entanto, há uma maneira mais rápida de escrever funções em tempo real, e elas são chamadas de funções lambda porque você usa a palavra-chave lambda.
Algumas definições de função são simples o suficiente para que possam ser convertidas em uma função lambda. Ao fazer isso, você escreve menos linhas de código, o que é muito bom e será útil, especialmente quando estiver escrevendo e mantendo programas grandes.
lambda Função
Aqui reescrevemos nossa função raise_to_power como uma função lambda. Após a palavra-chave lambda, especificamos os nomes dos argumentos; em seguida, usamos dois pontos seguidos da expressão que especifica o que desejamos que a função retorne.
raise_to_power =lambda x, y: x ** y
raise_to_power(2,3)Tecnologia
Conforme mencionado, as funções lambda permitem que você escreva funções de forma rápida e suja, portanto, não recomendamos que você as use o tempo todo, mas há situações em que elas são úteis, como no exemplo abaixo.
map() e lambda Função
A função map recebe dois argumentos, uma função e uma sequência, como uma lista, e aplica a função em todos os elementos da sequência. Podemos passar a função lambda para o map sem sequer nomeá-las e, nesse caso, nos referimos a elas como funções anônimas.
Neste exemplo, usamos map() na função lambda, que eleva todos os elementos da lista ao quadrado, e armazenamos o resultado em square_all.
nums =[48,6,9,21,1]
square_all =map(lambda num: num **2, nums)print(square_all)Tecnologia
A impressão de square_all revela que se trata de um objeto map, portanto, para ver o que ele retorna, usamos list para transformá-lo em uma lista e imprimir o resultado.
A função abaixo echo_word recebe 2 parâmetros: um valor de cadeia de caracteres, word1, e um valor inteiro echo. Ele retorna uma cadeia de caracteres que é uma concatenação de echo cópias de word1.
Você converterá a função simples acima em uma função lambda.
defecho_word(word1, echo):"""Concatenate echo copies of word1."""
words = word1 * echo
return words
Tecnologia
No exemplo a seguir, você fará isso:
Defina uma função lambda echo_word usando as variáveis word1 e echo. Replicar o que a definição original da função para echo_word() faz acima.
Chame echo_word() com o argumento de cadeia de caracteres 'hey' e o valor 5, nessa ordem. Atribua a chamada para result. Por fim, imprima a variável result.
# Define echo_word as a lambda function: echo_word
echo_word =(lambda word1, echo: word1 * echo)# Call echo_word: result
result = echo_word('hey',5)# Print resultprint(result)Tecnologia
Quando executamos o código acima, ele produz o seguinte resultado:
Aprenda sobre as funções lambda do Python, para que servem e quando usá-las. Inclui exemplos práticos e melhores práticas para uma implementação eficaz.
Descubra como escrever funções em Python reutilizáveis e eficientes. Domine parâmetros, instruções de retorno e temas avançados como funções lambda. Organize melhor seu código com main() e outras boas práticas.
Saiba tudo sobre a compreensão de dicionário do Python: como você pode usá-la para criar dicionários, substituir loops for (aninhados) ou funções lambda por map(), filter() e reduce(), ...!
Você pode escrever suas próprias funções Python usando a palavra-chave def, cabeçalhos de função, docstrings e corpos de função. No entanto, há uma maneira mais rápida de escrever funções em tempo real, e elas são chamadas de funções
lambdaporque você usa a palavra-chavelambda.Algumas definições de função são simples o suficiente para que possam ser convertidas em uma função lambda. Ao fazer isso, você escreve menos linhas de código, o que é muito bom e será útil, especialmente quando estiver escrevendo e mantendo programas grandes.
lambdaFunçãoAqui reescrevemos nossa função
raise_to_powercomo uma função lambda. Após a palavra-chavelambda, especificamos os nomes dos argumentos; em seguida, usamos dois pontos seguidos da expressão que especifica o que desejamos que a função retorne.Conforme mencionado, as funções
lambdapermitem que você escreva funções de forma rápida e suja, portanto, não recomendamos que você as use o tempo todo, mas há situações em que elas são úteis, como no exemplo abaixo.map()elambdaFunçãoA função
maprecebe dois argumentos, uma função e uma sequência, como uma lista, e aplica a função em todos os elementos da sequência. Podemos passar a funçãolambdapara omapsem sequer nomeá-las e, nesse caso, nos referimos a elas como funções anônimas.Neste exemplo, usamos
map()na funçãolambda, que eleva todos os elementos da lista ao quadrado, e armazenamos o resultado emsquare_all.A impressão de
square_allrevela que se trata de um objetomap, portanto, para ver o que ele retorna, usamos list para transformá-lo em uma lista e imprimir o resultado.Exemplo interativo de redação de um
lambdaFunçãoA função abaixo
echo_wordrecebe 2 parâmetros: um valor de cadeia de caracteres,word1, e um valor inteiroecho. Ele retorna uma cadeia de caracteres que é uma concatenação deechocópias deword1.Você converterá a função simples acima em uma função lambda.
No exemplo a seguir, você fará isso:
echo_wordusando as variáveisword1eecho. Replicar o que a definição original da função paraecho_word()faz acima.echo_word()com o argumento de cadeia de caracteres'hey'e o valor5, nessa ordem. Atribua a chamada pararesult. Por fim, imprima a variávelresult.Quando executamos o código acima, ele produz o seguinte resultado:
Experimente você mesmo.
Para saber mais sobre as funções Lambda, assista a este vídeo do nosso curso Python Data Science Toolbox (Parte 1).
Este conteúdo foi extraído do curso Python Data Science Toolbox (Parte 1) do DataCamp, ministrado por Hugo Bowne-Anderson.
Confira o tutorial de funções Python do DataCamp.