Introduction
En Python, nous pouvons utiliser la fonction map() pour appliquer une fonction à chaque élément d'une liste et renvoyer une nouvelle liste avec les éléments modifiés. Nous pouvons également utiliser la fonction sum() pour additionner tous les éléments d'une liste. Dans ce défi, nous allons combiner ces deux fonctions pour calculer la moyenne d'une liste, après avoir appliqué une fonction fournie à chaque élément pour le modifier.
Moyenne d'une liste transformée
Écrivez une fonction appelée average_by(lst, fn = lambda x: x) qui prend une liste lst et une fonction fn en arguments. La fonction fn doit être utilisée pour transformer chaque élément de la liste en une valeur. La fonction doit ensuite calculer la moyenne des valeurs transformées et la renvoyer.
Si l'argument fn n'est pas fourni, la fonction doit utiliser la fonction identité par défaut, qui renvoie simplement l'élément lui-même.
Votre fonction doit répondre aux exigences suivantes :
- Utiliser
map()pour transformer chaque élément en la valeur renvoyée parfn. - Utiliser
sum()pour additionner toutes les valeurs transformées, puis diviser parlen(lst). - Omettez le dernier argument,
fn, pour utiliser la fonction identité par défaut.
Signature de la fonction : def average_by(lst, fn = lambda x: x) -> float:
def average_by(lst, fn = lambda x: x):
return sum(map(fn, lst), 0.0) / len(lst)
average_by([{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }], lambda x: x['n'])
## 5.0
Sommaire
Dans ce défi, nous avons appris à utiliser les fonctions map() et sum() pour calculer la moyenne d'une liste, après avoir transformé chaque élément en une valeur à l'aide d'une fonction fournie. Nous avons également appris à utiliser les arguments par défaut dans les fonctions Python.