Neste tutorial, mostraremos como criar funções anônimas em Python. Funções anônimas em Python são criadas com a palavra-chave lambda.
Funções lambda do Python
As funções lambda do Python, também conhecidas como funções anônimas, são funções embutidas que não têm um nome. Eles são criados com a palavra-chave lambda. Isso faz parte do paradigma funcional integrado ao Python.
As funções lambda do Python são restritas a uma única expressão. Eles podem ser usados onde as funções normais podem ser usadas.
Sintaxe Python lambda
Python lambda tem a seguinte sintaxe:
nome_da_variavel = lambda x: x * y
Exemplo de lambda em Python
A seguir está um exemplo simples que demonstra a função lambda do Python.
# usando funcao normal
def quadrado(x):
return x * x
# usando Lambda
f_quadrada = lambda x: x * x
print(quadrado(3))
print(f_quadrada(3))
No exemplo, temos duas funções que elevam ao quadrado um valor.
def quadrado(x):
return x * x
Esta é uma função Python definida com a palavra-chave def. O nome da função é quadrado.
f_quadrada = lambda x: x * x
Aqui, definimos uma função anônima em linha com lambda. Observe que a função não tem nome. O f_quadrada é o nome da variável que contém a função lambda criada.
Resultado:
9
9
Python lambda com map
As funções lambda do Python são úteis com a função map(). Podemos criar um código mais conciso. Python map() é uma função embutida que aplica a função dada em cada item do (s) iterável (s) e retorna um objeto iterador.
numeros = [1, 2, 3, 4, 5]
#usando a funcao lambada dentro do map
quadrado = map(lambda x: x * x, numeros)
for numero in quadrado:
print(numero)
Resultado
1
4
9
16
25
Python lambda com filtro
As funções lambda do Python podem ser usadas com a função filter(). A função filter() constrói uma lista dos elementos do iterável para os quais a função retorna true.
numeros = [1, 2, 3, 4, 5]
#vusando a funcao lambada dentro do filter,
# para pegar numeros que sua divisao por 2 nao da resto zero
filtrando_numeros = list(filter(lambda x: x % 2, numeros))
print(filtrando_numeros)
Resultado
[1, 3, 5]
No exemplo, filtramos a lista de inteiros. A nova lista contém apenas números inteiros ímpares.
filtrando_numeros = list(filter(lambda x: x % 2, numeros))
O primeiro parâmetro do filter() é a função que processa os elementos da lista. A função lambda tem a expressão x% 2, que retorna verdadeiro para valores ímpares.
Python lambda com sort()
As listas Python têm um método list.sort() integrado que modifica a lista no local. O método tem um parâmetro chave para especificar uma função a ser chamada em cada elemento da lista antes de fazer comparações. Lá podemos usar uma função lambda.
pais = [
{'pais': 'Angoala', 'populacao': 10009},
{'pais': 'Brasil', 'populacao': 13366},
{'pais': 'Portugal', 'populacao': 23545},
{'pais': 'India', 'populacao': 36541},
{'pais': 'China', 'populacao': 23694}
]
pais.sort (reverse = True, key = lambda e: e ['populacao'])
for p in pais:
print(p)
Temos uma lista de dicionários de países. Com a função lambda, classificamos os países por seu número de populações na ordem inversa.
Resultado
{'pais': 'India', 'populacao': 36541}
{'pais': 'China', 'populacao': 23694}
{'pais': 'Portugal', 'populacao': 23545}
{'pais': 'Brasil', 'populacao': 13366}
{'pais': 'Angoala', 'populacao': 10009}
0 Comentários