Atualizado: 04/11/2024

Expressões Lambda - Python

As expressões lambda em Python são pequenas funções anônimas, que são definidas usando o operador lambda. A definição formal de uma expressão lambda é:

lambda parametros_opcionais : instrução

Vamos definir uma expressão lambda simples:

message = lambda: print("hello")
message()   # hello

Aqui, a expressão lambda é atribuída à variável message. Esta expressão não possui parâmetros, não retorna nenhum valor e apenas exibe a mensagem "hello" no console. Através da variável message, podemos chamar essa expressão lambda como se fosse uma função comum. Na prática, ela é equivalente à seguinte função:

def message():
    print("hello")

Se a expressão lambda tiver parâmetros, eles são definidos após a palavra-chave lambda. O valor retornado, se houver, é especificado após os dois-pontos. Por exemplo, vamos definir uma expressão lambda que retorna o quadrado de um número:

square = lambda n: n * n

print(square(4))    # 16
print(square(5))    # 25

Neste exemplo, a expressão lambda recebe um parâmetro, n. À direita dos dois-pontos está o valor retornado, n * n. Esta expressão lambda é equivalente à seguinte função:

def square(n):
    return n * n

De maneira semelhante, podemos criar expressões lambda que aceitam múltiplos parâmetros:

sum = lambda a, b: a + b

print(sum(4, 5))    # 9
print(sum(5, 6))    # 11

Embora as expressões lambda permitam reduzir a quantidade de código ao definir funções, elas têm a limitação de só poderem executar uma única instrução. No entanto, são bastante úteis em situações onde precisamos passar uma função como parâmetro para outra função, ou quando uma função deve retornar outra função. Veja um exemplo de expressão lambda sendo passada como parâmetro:

def do_operation(a, b, operation):
    result = operation(a, b)
    print(f"result = {result}")

do_operation(5, 4, lambda a, b: a + b)  # result = 9
do_operation(5, 4, lambda a, b: a * b)  # result = 20

Neste caso, não é necessário definir funções separadas para realizar a soma e a multiplicação. Em vez disso, passamos expressões lambda diretamente para a função do_operation.

O mesmo conceito se aplica quando uma função retorna uma expressão lambda:

def select_operation(choice):
    if choice == 1:
        return lambda a, b: a + b
    elif choice == 2:
        return lambda a, b: a - b
    else:
        return lambda a, b: a * b

operation = select_operation(1)  # operation = soma
print(operation(10, 6))  # 16

operation = select_operation(2)  # operation = subtração
print(operation(10, 6))  # 4

operation = select_operation(3)  # operation = multiplicação
print(operation(10, 6))  # 60

Neste exemplo, a função select_operation retorna diferentes operações matemáticas, dependendo da escolha do usuário. Isso demonstra a flexibilidade das expressões lambda em Python, permitindo a criação de funções concisas e eficientes para operações simples.

Política de Privacidade

Copyright © www.programicio.com Todos os direitos reservados

É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

Contato: programicio@gmail.com