Calculer la somme, la moyenne et la médiane d’une liste en Python : Exemples avancés

Le calcul de la somme, de la moyenne et de la médiane d’une liste en Python peut être étendu pour traiter des cas plus avancés et des situations réelles. Dans cet article, nous allons explorer des exemples avancés de calcul de statistiques à partir de listes de nombres en utilisant Python.

Calcul de la somme d’une liste avec filtrage

Supposons que vous ayez une liste de nombres, mais que vous souhaitiez calculer la somme uniquement des nombres qui satisfont à une certaine condition, par exemple, les nombres pairs. Vous pouvez utiliser une compréhension de liste pour filtrer les éléments et ensuite calculer leur somme. Voici un exemple :

liste_de_nombres = [10, 21, 30, 45, 50]

somme_des_nombres_pairs = sum(x for x in liste_de_nombres if x % 2 == 0)

print("La somme des nombres pairs est :", somme_des_nombres_pairs)

Dans cet exemple, nous utilisons une compréhension de liste pour filtrer les nombres pairs de la liste avant de calculer leur somme.

Calcul de la moyenne pondérée

Dans certaines situations, vous pourriez avoir besoin de calculer une moyenne pondérée, où chaque élément de la liste a un poids spécifique. Par exemple, vous pourriez avoir une liste de notes d’examens et une liste correspondante de coefficients pour chaque examen. Vous pouvez calculer la moyenne pondérée comme ceci :

notes = [85, 90, 78, 92]
coefficients = [0.3, 0.2, 0.2, 0.3]

moyenne_ponderee = sum(n * w for n, w in zip(notes, coefficients)) / sum(coefficients)

print("La moyenne pondérée est :", moyenne_ponderee)

Dans cet exemple, nous utilisons la fonction zip() pour associer chaque note à son coefficient correspondant, puis nous calculons la somme des produits des notes et des coefficients, que nous divisons ensuite par la somme des coefficients pour obtenir la moyenne pondérée.

La méthode que nous avons présentée précédemment pour calculer la médiane suppose que la liste est triée. Cependant, dans de nombreux cas, vous pourriez avoir une liste non triée. Vous pouvez calculer la médiane dans ce cas en utilisant la fonction sorted() pour trier temporairement la liste, puis en appliquant la même approche. Voici un exemple :

def calculer_mediane_non_triee(liste):
    liste_triee = sorted(liste)
    longueur = len(liste_triee)

    if longueur % 2 == 1:
        mediane = liste_triee[longueur // 2]
    else:
        milieu_gauche = liste_triee[(longueur // 2) - 1]
        milieu_droit = liste_triee[longueur // 2]
        mediane = (milieu_gauche + milieu_droit) / 2

    return mediane

liste_de_nombres_non_triee = [30, 10, 50, 21, 45]
mediane_non_triee = calculer_mediane_non_triee(liste_de_nombres_non_triee)

print("La médiane des nombres non triée est :", mediane_non_triee)

Dans cet exemple, nous utilisons une fonction calculer_mediane_non_triee qui trie temporairement la liste avant de calculer la médiane, même si la liste d’origine n’est pas triée.

Conclusion

Le calcul de la somme, de la moyenne et de la médiane d’une liste en Python peut être adapté pour répondre à des besoins avancés. En utilisant des compréhensions de liste, des pondérations ou en traitant des listes non triées, vous pouvez manipuler efficacement des données pour obtenir les statistiques nécessaires dans des scénarios réels. En comprenant ces exemples avancés et en les adaptant à vos besoins spécifiques, vous serez en mesure de résoudre une variété de problèmes liés à l’analyse de données en Python.

Upgrade : Calculer la somme, la moyenne et la médiane d’une liste en Python : Approfondissement

Autres articles

Tkinter Entry get value : Manipulation, Astuces...
Les widgets Entry de Tkinter sont des composants essentiels pour...
Read more
Guide complet sur tkinter Multiline Entry
Tkinter est une bibliothèque Python populaire pour créer des interfaces...
Read more
Guide complet des Design Patterns en Python
Les Design Patterns, ou motifs de conception, sont des solutions...
Read more

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *