Pitão

Python Lambda

Python Lambda

Neste artigo, tentaremos aprender sobre Python Lambda.

Definição

Lambda é uma função definida sem um nome. Isso pode levar vários argumentos, mas apenas uma expressão é permitida que é avaliada e retornada. Onde os objetos de função são necessários, podemos usar a função lambda.

Sintaxe:
argumentos lambda: expressão

Exemplo 1: A função abaixo é usada para calcular o cubo de um número.

cubo def (a):
retornar a * a * a
imprimir (cubo (3))

A função acima pode ser escrita usando lambda, conforme mostrado abaixo:

p = lambda x: x * x * x
imprimir (p (3))

Exemplo 2: A função abaixo é usada para calcular a soma de dois números.

def soma_2 (x, y):
retornar x + y
imprimir (soma_2 (10,20))

A função acima pode ser escrita usando lambda, conforme mostrado abaixo:

p = lambda x, y: x + y
imprimir (p (10,20))

Exemplo 3: O exemplo abaixo para lambda leva vários argumentos.

p = lambda x, y, z: x + y + z
imprimir (p (10, 5, 3))

Exemplo 4: Esta função multiplica o número por 2 e pode ser escrita usando a função Lambda conforme abaixo:

def func (n):
retornar lambda x: x * n
multiply_by_2 = func (2)
imprimir (multiply_by_2 (11))
imprimir (multiply_by_2 (15))

Exemplo 5: A função assume a função como um argumento e retorna o resultado.

argumento_função = lambda p, f: p + f (p)
imprimir (argumento_função (5, lambda p: p * p))
imprimir (argumento_função (10, lambda x: x - 3))
imprimir (argumento_função (10, lambda x: x + 5))
imprimir (argumento_função (10, lambda x: x / 5))

Exemplo 6: No exemplo abaixo, lambda é usado para classificar os valores.

# (nome, sobrenome, idade)
data = [("Sachin", "Tendulkar", "42"), ("Rahul", "Dravid", "44"), ("Virendra", "Sehwag", "40")]
dados.classificar (chave = lambda x: x [0]) # classificar com base no nome
imprimir (dados)
data = [("Sachin", "Tendulkar", "42"), ("Rahul", "Dravid", "44"), ("Virendra", "Sehwag", "40")]
dados.sort (key = lambda x: x [1]) # sort com base no sobrenome
imprimir (dados)
data = [("Sachin", "Tendulkar", "42"), ("Rahul", "Dravid", "44"), ("Virendra", "Sehwag", "40")]
dados.sort (key = lambda x: x [2]) # sort com base na idade
imprimir (dados)

Agora, vá para o interpretador python3.

A função lambda é usada em muitos métodos embutidos. A seguir estão alguns exemplos:

1. Mapa

Esta função mapeia cada elemento em sequência usando a função lambda.

Sintaxe:
mapa (função, seq)

Ex:
nums = [1,2,3,4,5,6]
Aqui, vamos multiplicar cada elemento da lista por 2.
mul_2 = mapa (lambda x: x * 2, nums)
print (list (mul_2)) # Retorna o objeto do mapa e o typecasting como uma lista.

Na função acima, cada elemento da lista é passado para a função lambda e a função lambda irá multiplicá-lo por 2.

nums = [1,2,3,4,5,6]
mul_2 = mapa (lambda x: x * 2, nums)
imprimir (lista (mul_2))

2. Filtro

Esta função filtra todos os elementos de uma lista para a qual a função lambda retorna True.

Sintaxe:
filtro (função, seq)

Ex:
nums = [0,1,2,3,4,5,6,7,8,9,10]
odd_nums = filter (lambda x: x% 2, nums)
print (list (odd_nums)) # Retorna o objeto do mapa, e o typecasting como uma lista.

nums = [0,1,2,3,4,5,6,7,8,9,10]
odd_nums = filter (lambda x: x% 2, nums)
imprimir (lista (odd_nums))

3. Reduzir

Esta função retorna um único valor aplicando a função func () ao seq.

Sintaxe:
reduzir (função, seq)

Ex:
nums = [0,1,2,3,4,5,6,7,8,9,10]
valor = reduzir (lambda x, y: x + y, nums)
imprimir (valor)

Na lista acima, ele pegará os 2 primeiros elementos e realizará a adição. O resultado de uma adição será adicionado ao terceiro elemento e assim por diante. Finalmente, ele retornará um único valor.

Observação: este método não está disponível na versão python3 +.

nums = [0,1,2,3,4,5,6,7,8,9,10]
valor = reduzir (lambda x, y: x + y, nums)
imprimir (valor)

Conclusão

Neste artigo, aprendemos muitos aspectos da função lambda. Dependendo das necessidades do programa, podemos usá-lo e fazer uma codificação Python melhor. Isso é mais comumente usado para passar argumentos para outra função (por exemplo, vimos as funções acima mapear, filtrar e reduzir).

Como alterar as configurações do mouse e touchpad usando Xinput no Linux
A maioria das distribuições Linux vem com a biblioteca “libinput” por padrão para lidar com eventos de entrada em um sistema. Ele pode processar event...
Remapeie os botões do mouse de maneira diferente para software diferente com o controle de botão do mouse X
Talvez você precise de uma ferramenta que possa fazer o controle do seu mouse mudar com cada aplicativo que você usa. Se for esse o caso, você pode ex...
Análise do mouse sem fio Microsoft Sculpt Touch
Recentemente li sobre o Microsoft Sculpt Touch mouse sem fio e decidi comprá-lo. Depois de usá-lo por um tempo, decidi compartilhar minha experiência ...