Reduce() et les fonctions lambda
Vous commencez à bien maîtriser les fonctions lambda ! Voici une fonction supplémentaire à ajouter à votre répertoire de compétences. La fonction reduce()
est utile pour effectuer un calcul sur une liste et, contrairement à map()
et filter()
, elle ne renvoie qu’une seule valeur comme résultat. Pour utiliser reduce()
, vous devez l’importer à partir du module functools
.
Vous vous souvenez de gibberish()
lors des exercices précédents ?
# Define gibberish
def gibberish(*args):
"""Concatenate strings in *args together."""
hodgepodge = ''
for word in args:
hodgepodge += word
return hodgepodge
gibberish()
prend simplement une liste de chaînes de caractères comme argument et renvoie, en tant que résultat à valeur unique, la concaténation de toutes ces chaînes. Dans cet exercice, vous allez reproduire cette fonctionnalité en utilisant reduce()
et une fonction lambda qui concatène des chaînes de caractères.
Cet exercice fait partie du cours
Introduction aux fonctions en Python
Instructions
- Importez la fonction
reduce
à partir du modulefunctools
. - Dans l’appel
reduce()
, passez une fonction lambda qui prend deux arguments de type chaîneitem1
etitem2
et les concatène ; passez également la liste de chaînes,stark
. Affectez le résultat àresult
. Le premier argument dereduce()
doit être la fonction lambda et le deuxième argument la listestark
.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Import reduce from functools
# Create a list of strings: stark
stark = ['robb', 'sansa', 'arya', 'brandon', 'rickon']
# Use reduce() to apply a lambda function over stark: result
result = reduce(____, ____)
# Print the result
print(result)