Python Lambdas

Python Lambdas

Introdução

Você trabalhou com funções e métodos, mas há um tipo diferente de função, a função anônima. Funções anônimas são apenas funções sem nomes e, em Python, são tratados com o operador Lambda.

Funções anônimas permitem que você use o comportamento de uma função sem ter que criar uma função. Isso é especialmente bom quando você só precisa usar uma função uma ou duas vezes. Pode parecer uma ocorrência incomum, mas acontece com bastante frequência quando uma função ou método toma uma função como um parâmetro.

Lambdas

O operador Lambda tem algumas partes básicas. Isso consiste de Lambda, uma lista de parâmetros e uma operação. A operação é separada dos outros dois com um cólon. Confira este exemplo.

foo = lambda a = 2, b = 1: a / b impressão (foo) impressão (foo (16, 4)) 

Se você estiver usando lambdas em uma capacidade independente, poderá defini -los iguais a uma variável. Nesta forma, eles não são tão versáteis, mas ainda podem desempenhar um papel na criação de funções em tempo.

Lambdas realmente encontram seu uso ao ser passado para outras funções. Veja como funciona no exemplo abaixo.

def do_something (função, list_a, list_b): para x em list_a: para y em list_b: function (x, y) do_something (lambda x, y: print (x*y), [1, 3, 5], [2 , 4, 6]) 

Claro, este exemplo não é tão prático. Ele ilustra o ponto, embora. Você pode criar um lambda dentro de uma chamada de função para passar como um argumento para outra função.

Mapa

O mapa() função é interessante. Ele permite que você itera simultaneamente em uma ou mais listas e passe para uma função. É muito fácil para essa função ser uma expressão de lambda.

Este exemplo pode ajudar a esclarecer.

Imprimir (Lista (mapa (lambda x, y: x * y, [1, 2, 3, 4, 5], [2, 4, 6, 8, 10]))))) 

Parece uma bagunça, então é melhor quebrá -lo. O pedaço principal começa com mapa. Leva pelo menos dois argumentos, uma função e uma lista. Pode levar várias listas, e desta vez há dois. Também é preciso uma expressão de lambda que aceita dois argumentos e os multiplica.

A função do mapa passa por essas listas. Ele define cada elemento na primeira lista no primeiro argumento da função e cada elemento na segunda lista no segundo argumento da função. Ele executa a função a cada vez. O mapa() função retorna um objeto de mapa.

Esse objeto de mapa precisa ser convertido em uma forma mais utilizável. O lista() Função transforma o objeto em uma lista regular. Então, imprimir() Imprime essa lista.

Dê uma olhada em outro.

Imprima (Lista (mapa (lambda x: x*2, [1, 2, 3, 4, 5])))) 

O exemplo mais simples pode ser mais fácil de seguir.

Filtro

O filtro() função é outra função semelhante a mapa(). É preciso uma função e uma lista como argumentos e itera sobre a lista, executando os elementos através da função.

Em vez de apenas executar uma função, filtro() usa a função como uma condição de teste para os elementos da lista. O objeto que ele cria contém todos os elementos em que a condição avaliada “verdadeira.”

Imprima (Lista (filtro (lambda x: x> 5, [2, 4, 6, 8])))))) 

A lista resultante continha apenas 6 e 8, porque essas eram as duas condições em que a condição fornecida na função avaliada “verdadeira.” filtro(), Quando usado em conjunto com uma expressão lambda, é uma maneira eficiente de classificar e testar listas de testes contra uma condição.

Pensamentos finais

Lambdas não são o tópico mais popular em Python. Muitos desenvolvedores nem gostam deles. Até o criador de Python não é um fã.

Se você gosta deles, ótimo. Se não, não se preocupe. Existem alternativas que serão discutidas nos guias posteriores.

Por enquanto, é importante estar ciente dos lambdas e como eles funcionam. Você os encontrará de tempos em tempos, e eles podem ser a solução mais fácil.

Exercícios

  1. Crie uma expressão lambda que multiplique dois números e defina -a igual a uma variável.
  2. Use essa variável para chamar o lambda e passe dois números.
  3. Escreva uma função que tome uma função como um parâmetro. Chame essa função e passe um lambda.
  4. Use o mapa() função junto com um lambda para adicionar cada elemento em duas listas.
  5. Use o filtro() função junto com um lambda para testar se cada elemento em uma lista é estranho.

Tutoriais do Linux relacionados:

  • Coisas para instalar no Ubuntu 20.04
  • Uma introdução à automação, ferramentas e técnicas do Linux
  • Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
  • Mint 20: Melhor que o Ubuntu e o Microsoft Windows?
  • Sistema Linux Hung? Como escapar para a linha de comando e…
  • Ubuntu 20.04 Guia
  • Coisas para instalar no Ubuntu 22.04
  • Mastering Bash Script Loops
  • Coisas para fazer depois de instalar o Ubuntu 22.04 Jellyfish…
  • Como usar o ADB Android Debug Bridge para gerenciar seu Android…