Map() et fonctions lambda
Jusqu’à présent, vous avez utilisé des fonctions lambda pour écrire des fonctions courtes et simples, ainsi que pour redéfinir des fonctions aux fonctionnalités simples. Le meilleur cas d’utilisation des fonctions lambda, toutefois, est celui où vous souhaitez que ces fonctionnalités simples soient imbriquées de manière anonyme dans des expressions plus larges. Cela signifie que la fonctionnalité n’est pas stockée dans l’environnement, contrairement à une fonction définie à l’aide de def
. Pour mieux comprendre cette idée, vous allez utiliser une fonction lambda dans le contexte de la fonction map()
.
Vous avez vu dans la vidéo que map()
applique une fonction sur un objet, tel qu’une liste. Ici, vous pouvez utiliser des fonctions lambda pour définir la fonction que map()
utilisera pour traiter l’objet. Par exemple :
nums = [2, 4, 6, 8, 10]
result = map(lambda a: a ** 2, nums)
Vous pouvez voir ici qu’une fonction lambda, qui élève une valeur a
à la puissance 2, est transmise à map()
en même temps qu’une liste de nombres, nums
. L’objet carte qui résulte de l’appel à map()
est stocké dans result
. Vous allez maintenant vous exercer à l’utilisation des fonctions lambda avec map()
. Pour cet exercice, vous allez appliquer la fonctionnalité de la fonction add_bangs()
que vous avez définie dans les exercices précédents à une liste de chaînes de caractères.
Cet exercice fait partie du cours
Introduction aux fonctions en Python
Instructions
- Dans l’appel
map()
, passez une fonction lambda qui concatène la chaîne'!!!'
à une chaîneitem
; passez également la liste des chaînes,spells
. Affectez l’objet carte résultant àshout_spells
. - Convertissez
shout_spells
en liste et affichez (print) la liste.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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)