Clique sobre os tópicos listados abaixo para navegar até o conteúdo desejado.

  1. Declarar função anônima/lambda
  2. Função lambda com parâmetros
  3. Retornando função lambda
  4. Função lambda como parâmetro
  5. Lambda com if-else
  6. Lambda com if-else e operadores lógicos
  7. Escopo em funções lambda
  8. Passagem por valor e referência
  9. Função anônima/arrow retornando mais de um valor
  10. Vetor/matriz de funções anônimas/arrow
  11. Restrições

Funções Lambda são funções que não possuem nome, sendo declaradas e atribuidas à variáveis. Esse tipo de função pode receber argumentos e seu corpo é composto de uma expressão de retorno ou comandos.

Funções lambda possuem restrições em relação ao comandos decisão, repetição e try-catch ou outros que utilizam mais de uma linha em seu corpo. As palavras return e raise não pode ser utilizadas.

Uma função lambda é declara de acordo com a sintaxe mostrada abaixo:

Sintaxe
nome_funcao lambda <argumentos>: <corpo>
Onde
<corpo>: expressão de retorno ou comando
<argumentos>: lista de argumentos separados por (,)
Exemplo 1
#expressão de retorno
funcao_dobro = lambda arg: arg*2
print(funcao_dobro(100))

#usando função nativa print
funcao_dobro = lambda param: print(param);
funcao_dobro(2)
Saída
200
2

No exemplo acima, a declaração de uma função lambda irá retornar o arg*2 sem informar o comando return. Isso é feito de forma implícita.

As expressões lambda podem utilizar N parâmetros em sua declaração como mostrado abaixo:

Sintaxe
nome_funcao lambda arg1, arg2, argN: <corpo>
Exemplo 2
soma = lambda a, b, c : a + b + c
print(soma(1,2,3))
Saída
6

Podemos utilizar uma expressão lambda em conjunto com a palavra reservada return para que um determinada função retorne o resultado de uma expressão lambda.

Sintaxe
return lambda <argumentos>: <corpo>
Exemplo 3
#definição do corpo da função
def funcao(a,b,c):
    return lambda a,b,c : a + b + c

#criação da função soma
fsoma = funcao(0,0,0)

total = fsoma(1,2,3)
print(total)
Saída
6

Python permite que uma expressão lambda seja passada como argumento para uma função. Para tal, declararmos uma função desejada com o parâmetro que irá uma função como argumento.

Sintaxe
def nome_funcao(param_funcao_lambda, <parametros_lambda>)
    #corpo
Exemplo 4
#funcao que irá receber uma expressão lambda e um argumento.
def funcao(funcao_lambda, num):
    return funcao_lambda(num)

#definição da expressão lambda
soma = lambda num : num % 2 == 0

#passando lambda como argumento
print(funcao(soma,2))

Saída
True

Podemos utilizar os comandos if-else no corpo de uma expressão lambda. Expressões lambda permitem o uso de if-else na forma

Sintaxe
retorno_if if condicao else <retorno_else>
    #corpo
Exemplo 5
funcao_dobro = lambda param: param*2 if param%2 == 0 else param*3
var = funcao_dobro(2)
print(var)
Saída
True
  1. 10/09/2025 - revisão 2 - Ajustes: 'Declarando' reescrito, sintaxes, Ex. 1 e objetivos; Adição: lambda com 'if-else'
  2. 18/09/2024 - revisão 1 - Correção em links portugol, navegação 'Próximo'; ajustes gramaticais;
  3. 12/02/2024 - versão inicial