Moyenne d'une liste transformée

Beginner

This tutorial is from open-source community. Access the source code

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 par fn.
  • Utiliser sum() pour additionner toutes les valeurs transformées, puis diviser par len(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.