La fonction sum() en Python

python fonction sum() : sommer les élément d'une liste en Python

Ce tutoriel vous guide à travers l'utilisation de la fonction intégrée sum() en Python, particulièrement pour sommer les éléments d'une liste. Vous apprendrez ses bases, ses cas d'utilisation avancés et ses pièges courants.

Mots-clés : Python, fonction sum, liste, itérable, addition, agrégation, start, nombre, concaténation, générateur

1. A propos de la fonction sum()

La fonction sum() est une fonction intégrée (built-in) de Python. Son rôle principal est de calculer la somme des éléments d'un itérable (comme une liste, un tuple ou un générateur) et de renvoyer le total. C'est un outil essentiel pour les opérations d'agrégation numérique.

Syntaxe de base : sum(iterable, start=0)

  • iterable : La collection d'éléments à additionner (obligatoire).
  • start : La valeur à partir de laquelle commencer la somme (optionnelle, par défaut 0).

2. Utilisation de base avec des listes numériques

Le cas d'usage le plus courant est l'addition des éléments d'une liste de nombres (int ou float).

2.1 Somme d'une liste d'entiers

Le code suivant montre comment sommer une simple liste d'entiers. La fonction parcourt chaque élément et les additionne les uns aux autres.

Sortie :
La somme des notes est : 69

2.2 Somme d'une liste de nombres flottants

La fonction sum() fonctionne de la même manière avec les nombres à virgule flottante.

Sortie :
Total des dépenses : 40.74 €

3. Le paramètre 'start' : spécifier la valeur de départ

Le paramètre start est crucial. Il définit la valeur initiale de l'accumulateur. Par défaut, il est à 0. Le résultat final est : start + élément1 + élément2 + ...

3.1 Commencer la somme à une autre valeur

Utile lorsque vous avez déjà une valeur de base à laquelle ajouter les éléments de la liste.

Sortie :
Score total cumulé : 825
Calcul : 500 + 100 + 150 + 75 = 825

3.2 Cas concret : concaténation de listes (avec sum et start=[])

Une utilisation avancée et pratique de start est la concaténation d'une liste de listes. En définissant start=[], on initialise l'accumulateur à une liste vide, et on "ajoute" (concatène) chaque sous-liste.

Sortie :
Liste concaténée : [1, 2, 3, 4, 5, 6, 7, 8, 9]

Attention : Bien que pratique pour de petites listes, cette méthode peut être inefficace (complexité quadratique) pour de grandes quantités de données. Préférez list(itertools.chain(...)) ou une compréhension de liste dans ce cas.

4. Utilisation avec d'autres itérables et générateurs

sum() accepte n'importe quel itérable, pas seulement les listes.

4.1 Avec un tuple ou un ensemble (set)

Sortie :
30
20

4.2 Avec une expression génératrice (générateur)

Les expressions génératrices sont économes en mémoire. sum() peut les consommer directement sans créer de liste intermédiaire.

Sortie :
Somme des carrés de 1 à 10 : 385
Calcul : 1 + 4 + 9 + 16 + 25 + 36 + 49 + 64 + 81 + 100 = 385

5. Erreurs courantes et bonnes pratiques

5.1 Ne pas mélanger les types non numériques (sans paramètre start adapté)

Par défaut (start=0), sum() attend des nombres. Tenter de sommer des chaînes de caractères provoque une TypeError.

Sortie (si la ligne erronée est commentée) :
Cette ligne s'exécute si on ne décommente pas la ligne précédente.
Si on décommente total = sum(mots) : TypeError: unsupported operand type(s) for +: 'int' and 'str'

Pour concaténer des chaînes, utilisez str.join() : ''.join(mots).

5.2 Somme d'une liste vide

La somme d'une liste vide avec le paramètre start par défaut renvoie 0. Si un start personnalisé est fourni, c'est cette valeur qui est renvoyée.

Sortie :
0
100

6. Exemple complet : calcul d'une moyenne

Combinons sum() avec len() pour créer une fonction de calcul de moyenne robuste, gérant la liste vide.

Sortie :
Moyenne des températures : 22.86
Moyenne d'une liste vide : None





 

 

Younes Derfoufi
CRMEF OUJDA

Leave a Reply

Your email address will not be published. Required fields are marked *