Apprenez tout sur la fonction sum() en Python : de la syntaxe à l'utilisation avec divers itérables - avec des exemples de code utiles.
Lorsque vous travaillez avec des itérables Python, tels qu'une liste de nombres, une opération courante consiste à trouver la somme de tous les éléments de la liste. Vous rencontrerez également ce type d'opération lorsque vous travaillerez avec d'autres itérables, tels que les tuples et les ensembles.
Cette opération peut être réalisée de différentes manières, mais la méthode recommandée par Python est l'utilisation de la fonction intégrée sum().
Nous commencerons par examiner les autres approches, telles que le bouclage et la définition d'une fonction. Nous apprendrons ensuite la syntaxe de la fonction sum() de Python et des exemples de code pour mieux la comprendre.
Additionner des valeurs dans une table itérative Python

📋 Vous pouvez coder dans une REPL Python. Vous pouvez également utiliser l 'éditeur Python en ligne de Geekflare.
Considérez la liste de nombres suivante :
>>> nums = [2,8,5,3,11,7,9]
Notre objectif est de trouver la somme de tous les nombres de la liste. Nous aborderons bientôt la fonction Python sum()
, mais nous commencerons par d'autres approches possibles. En voici quelques-unes :
- L'utilisation d'une simple boucle pour
- Utiliser la fonction
reduce()
du module functools - Définir une fonction personnalisée
Utilisation de boucles
Pour trouver la somme de tous les éléments d'une liste, nous pouvons utiliser une boucle pour comme suit :
- Initialiser la variable
total
à zéro. - Bouclez la liste
nums
et accédez à chaque numéro. - Ajoutez le nombre au
total
.
>>> nums = [2,8,5,3,11,7,9]
>>> total = 0
>>> for num in nums :
... total = num
...
>>> total
45
Utilisation de la fonction Reduce
L'utilisation de la fonctionreduce()
constitue une autre approche de la sommation des itérabilités. La fonction reduce, intégrée au module functools de Python, prend en charge une fonction et un itérable. Elle réduit l'itérable en appliquant successivement la fonction sur les éléments de l'itérable.
Ici, nous utilisons une fonction lambda pour définir l'addition de deux nombres et nous passons la liste nums
comme itérable.
>>> nums = [2,8,5,3,11,7,9]
>>> from functools import reduce
>>> total = reduce(lambda n1, n2 : n1 n2, nums)
>>> total
45
La fonction reduce()
additionne successivement deux nombres, de gauche à droite, jusqu'à ce qu'ils se réduisent à une seule valeur de somme :

Utilisation d'une fonction personnalisée
Nous pouvons également définir une fonction personnalisée pour effectuer cette opération. Ici, nous définissons une fonction sum_list
qui :
- Prend en argument une liste de nombres et
- Renvoie la somme des éléments de la liste.
Le corps de la fonction utilise la construction en boucle que nous avons examinée précédemment. Mais la définition d'une fonction nous permet de la réutiliser.
>>> def sum_list(some_list) :
... total = 0
... for num in some_list :
... total = num
... return total
...
L'appel de la fonction sum_list()
avec nums
comme arguments renvoie la somme de 45 :
>>> nums = [2,8,5,3,11,7,9]
>>> total = sum_list(nums)
>>> total
45
Ensuite, nous allons nous familiariser avec la fonction intégrée sum()
. Elle est non seulement concis, mais aussi robuste, car elle fonctionne bien avec plusieurs itérables et types de données.
Syntaxe de la fonction Sum de Python
La syntaxe d'utilisation de la fonction sum()
est la suivante :
sum(iterable, start)
Ici,
itérable
est un argument obligatoire. Il peut s'agir de n'importe quel itérable pour lequel l'opération de sommation est valide, comme une liste ou des tuples de nombres. L'appel de la fonctionsum()
avec des chaînes Python soulève une exception TypeError (nous y reviendrons).start
est un argument facultatif. Il s'agit souvent d'une valeur numérique qui est ajoutée à la somme calculée. Cela peut être utile lorsque vous avez besoin d'ajouter une valeur constante au résultat.
Maintenant que nous avons appris la syntaxe de la fonction Python sum()
, utilise-la pour ajouter des itérables.
Additionner des itérables avec la fonction Sum

#1. Liste
Trouvons la somme des nombres de la liste nums
à l'aide de la fonction sum()
:
>>> nums = [2,8,5,3,11,7,9]
>>> sum_1 = sum(nums)
>>> sum_1
45
Utilisation de la valeur de départ facultative
Pour ajouter une valeur constante à la somme, nous pouvons utiliser la fonction sum()
avec la valeur de départ
facultative. Ici, nous passons une valeur de départ
de 100 comme argument de position:
>>> sum_start = sum(nums,100)
>>> sum_start
145
La valeur de départ
peut également être spécifiée en tant qu'argument de mot-clé :
>>> sum_start = sum(nums,start=10)
>>> sum_start
55
#2. Tuple
La fonction sum()
fonctionne également avec des n-uplets. Nous créons un tuple nums_tuple
en transformant la liste nums
en tuple :
>>> nums_tuple = tuple(nums)
>>> nums_tuple
(2, 8, 5, 3, 11, 7, 9)
>>> sum_2 = sum(nums_tuple)
>>> sum_2
45
#3. Ensemble
Nous pouvons également utiliser la fonction sum()
avec un ensemble de nombres :
>>> nums_set = set(nums)
>>> nums_set
{2, 3, 5, 7, 8, 9, 11}
Ici, nous transformons la liste nums
en un ensemble Python et calculons la somme des éléments de nums_set
.
>>> sum_3 = sum(nums_set)
>>> sum_3
45
#4. Dictionnaire
Considérez le dictionnaire étudiant
suivant avec des clés numériques. Remarquez ce qui se passe lorsque vous appelez la fonction sum()
avec ce dictionnaire comme argument.
>>> étudiants_dict = {1:106,2:112,3:127}
>>> sum_4 = sum(étudiants_dict)
>>> sum_4
6
Par défaut, la fonction sum()
renvoie la somme des clés.
Additionner les clés
Nous savons que le comportement par défaut consiste à additionner les clés du dictionnaire.
Cependant, vous pouvez rendre ce comportement plus explicite en utilisant la méthode keys()
du dictionnaire pour accéder aux clés. Vous pouvez ensuite transmettre la liste des clés à la fonction sum()
:
>>> sum_keys = sum(students_dict.keys())
>>> sum_keys
6
Ajouter les valeurs
Si vous souhaitez plutôt additionner les valeurs du dictionnaire, accédez aux valeurs en appelant la méthode values()
sur l'objet dictionnaire :
>>> sum_vals = sum(students_dict.values())
>>> sum_vals
345
Utilisation de la fonction Sum de Python avec d'autres types de données numériques

Jusqu'à présent, nous avons vu comment utiliser la fonction sum()
avec des itérables d'entiers. Voyons maintenant quelques exemples avec d'autres types de données numériques.
Nombres complexes
La fonction sum()
peut également être utilisée pour additionner des nombres complexes. Dans cet exemple, nums_c
est une liste de nombres complexes :
>>> nums_c = [3 4j, 1 2j]
>>> sum_c = sum(nums_c)
>>> sum_c
(4 6j)
Nombres à virgule flottante
Ici, nous utilisons la fonction sum()
pour additionner la liste des nombres à virgule flottante nums_f
:
>>> nums_f = [1.8,2.5,3.6,7.2]
>>> sum_f = sum(nums_f)
>>> sum_f
15.100000000000001
📑 Pour améliorer la précision du résultat de l'addition de nombres en virgule flottante, vous pouvez utiliser la fonction fsum() du module math pour additionner des itérables avec des valeurs en virgule flottante.
Aplatissement avec la fonction Sum
Voyons maintenant comment la fonction sum()
peut être utilisée pour aplatir et concaténer des itérables.
Aplatissement d'une liste
Supposons que nous ayons une liste imbriquée :
>>> lists = [[2,4,6],[3,5,7]]
Lorsque nous appelons la fonction sum()
en passant cette liste imbriquée comme argument ainsi qu'une liste vide comme valeur de départ
:
>>> sum(lists,[])
[2, 4, 6, 3, 5, 7]
Nous constatons que la liste imbriquée s'est aplatie en une seule liste de nombres.
De manière équivalente, si nous considérons que la liste est de la forme l3 = [l1,l2]
, la fonction sum()
concatène les deux listes l1
et l2
imbriquées dans la liste l3
.
📝A titre d'exercice rapide, essayez d'utiliser la fonction sum()
sur d'autres itérables imbriqués.
Écueil courant : N'utilisez pas la fonction sum() de Python avec des chaînes de caractères
Comme nous avons vu que la fonction sum()
peut être utilisée pour aplatir et concaténer des listes (et d'autres itérables comme les tuples), il est tentant de penser que nous pouvons également l'utiliser pour concaténer des chaînes de caractères.
Mais si vous essayez de le faire, vous rencontrerez une TypeError
:
>>> sum(['a','b','c'],'')
Traceback (most recent call last) :
File "<stdin>", line 1, in <module>
TypeError : sum() can't sum strings [use ''.join(seq) instead]
La fonction sum()
ne peut donc pas être utilisée pour additionner (ou concaténer) des chaînes de caractères.
Cependant, comme le montre le message d'erreur ci-dessus, vous pouvez utiliser la méthode join()
pour concaténer une liste de chaînes de caractères en une seule chaîne.
>>> ''.join(['a', 'b', 'c'])
'abc'
Conclusion
Dans ce tutoriel, nous avons appris à utiliser la fonction intégrée sum()
pour trouver la somme de tous les éléments d'une table itérative. La syntaxe générale pour utiliser la fonction sum()
est : sum(iterable, start)
, où iterable
est un argument obligatoire et start
est un argument optionnel.
Nous avons ensuite codé plusieurs exemples pour comprendre l'utilisation de la fonction sum()
avec des itérables tels que des listes, des tuples, des ensembles et des dictionnaires. Plus tard, nous avons vu comment la fonction sum()
peut être utilisée pour aplatir et concaténer des itérables, à l'exception des chaînes de caractères Python.
J'espère que ce tutoriel vous a été utile. Ensuite, vous pouvez consulter ce tutoriel sur la fonction map de Python.