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_spellsem 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)