Funções map() e lambda
Até agora, você usou as funções lambda para escrever funções curtas e simples, bem como para redefinir funções com funcionalidade simples. No entanto, o melhor caso de uso das funções lambda é quando você deseja que essas funcionalidades simples sejam incorporadas anonimamente em expressões maiores. Isso significa que a funcionalidade não é armazenada no ambiente, ao contrário de uma função definida com def
. Para entender melhor essa ideia, você usará uma função lambda no contexto da função map()
.
Lembre-se de que, no vídeo, map()
aplica uma função a um objeto, como uma lista. Aqui, você pode usar funções lambda para definir a função que o map()
usará para processar o objeto. Por exemplo:
nums = [2, 4, 6, 8, 10]
result = map(lambda a: a ** 2, nums)
Você pode ver aqui que uma função lambda, que eleva um valor a
à potência de 2, é passada para map()
juntamente com uma lista de números, nums
. O objeto de mapa que resulta da chamada para map()
é armazenado em result
. Agora você praticará o uso de funções lambda com map()
. Para este exercício, você mapeará a funcionalidade da função add_bangs()
que definiu nos exercícios anteriores em uma lista de strings.
Este exercício faz parte do curso
Introdução a funções em Python
Instruções do exercício
- Na chamada a
map()
, passe uma função lambda que concatena a string'!!!'
a uma stringitem
; passe também a lista de strings,spells
. Atribua o objeto de mapa resultante ashout_spells
. - Converta
shout_spells
em uma lista e imprima a lista.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Create a list of strings: spells
spells = ["protego", "accio", "expecto patronum", "legilimens"]
# Use map() to apply a lambda function over spells: shout_spells
____ = map(____, ____)
# Convert shout_spells to a list: shout_spells_list
____
# Print the result
print(shout_spells_list)