Funções lambda

Python intermediário para desenvolvedores

Jasmin Ludolf

Senior Data Science Content Developer

Funções simples

def average(values):
    average_value = sum(values) / len(values)
    return average_value
Python intermediário para desenvolvedores

Funções lambda

  • Palavra-chave lambda
    • Representa uma função anônima

 

lambda
Python intermediário para desenvolvedores

Funções lambda

  • Palavra-chave lambda
    • Representa uma função anônima

 

lambda arguments
Python intermediário para desenvolvedores

Funções lambda

  • Palavra-chave lambda
    • Representa uma função anônima

 

lambda arguments:
Python intermediário para desenvolvedores

Funções lambda

  • Palavra-chave lambda
    • Representa uma função anônima

$$

lambda arguments: expression
  • Por convenção, use x para um único argumento
  • A expression equivale ao corpo da função
  • Não precisa de return

$$

  • Pode ser armazenada em uma variável
Python intermediário para desenvolvedores

Criando uma função lambda

# Função lambda de média
print(lambda x: sum(x) / len(x))



<function <lambda> at 0x7f11ab813d80>
# Função média personalizada
def average(x):
    return sum(x) / len(x)  

print(average)
<function average at 0x7f11ab813ec0>
Python intermediário para desenvolvedores

Usando funções lambda

# Obter a média
(lambda x: sum(x) / len(x))
Python intermediário para desenvolvedores

Usando funções lambda

# Obter a média
(lambda x: sum(x) / len(x))([3, 6, 9])

$$

$$

# Imprimir a média
print((lambda x: sum(x) / len(x))([3, 6, 9]))
6.0
Python intermediário para desenvolvedores

Armazenar e chamar uma função lambda

# Armazenar a função lambda em uma variável
average = lambda x: sum(x) / len(x)

# Chamar a função average print(average([3, 6, 9]))
6.0
Python intermediário para desenvolvedores

Vários parâmetros

# Função lambda com dois argumentos
power = lambda x, y: x**y


# Elevar 2 à potência de 3 print(power(2, 3))
8
Python intermediário para desenvolvedores

Funções lambda com iteráveis

  • map() aplica uma função a todos os elementos de um iterável
names = ["john", "sally", "leah"]

# Aplicar uma função lambda dentro de map() capitalize = map(lambda x: x.capitalize(), names)
print(capitalize)
<map object at 0x7fb200529c10>
# Converter para lista
print(list(capitalize))
['John', 'Sally', 'Leah']
Python intermediário para desenvolvedores

Funções personalizadas vs. lambda

Cenário Tipo de função
Tarefa complexa Personalizada
Mesma tarefa várias vezes Personalizada
Executada uma vez Lambda
Tarefa simples Lambda
Python intermediário para desenvolvedores

Vamos praticar!

Python intermediário para desenvolvedores

Preparing Video For Download...