Pour tout savoir sur fonction somme() en Python : à partir de la syntaxe pour l'utiliser avec divers itérables, avec des exemples de code utiles.
Lorsque vous travaillez avec des itérables Python, comme une liste de nombres, une opération courante consiste à trouver la somme de tous les éléments de la liste. Nous rencontrerons également de telles opérations lorsque nous travaillerons avec d'autres itérables, tels que des tuples et des ensembles.
Cela peut être fait de différentes manières, mais la méthode Pythonic recommandée consiste à utiliser la fonction intégrée sum().
Ici, nous allons commencer par examiner les autres approches, telles que la boucle et la définition d'une fonction. Nous allons ensuite apprendre la syntaxe de la fonction sum() de Python et des exemples de code pour mieux la comprendre.
Summing Values in a Python Iterable

📋 Vous pouvez coder dans un REPL Python. Ou vous pouvez 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 arriverons au Python sum()
fonctionner bientôt, mais nous allons commencer par certaines des autres approches que nous pouvons adopter. Ceux-ci inclus:
- Utilisation d'une simple boucle for
- Le
reduce()
fonction du module functools - Définir une fonction personnalisée
Utiliser des boucles
Pour trouver la somme de tous les éléments d'une liste, nous pouvons utiliser un pour la boucle ainsi:
- Initialiser
total
variable à zéro. - Boucle à travers le
nums
liste et accéder à chaque numéro. - Ajoutez le numéro au
total
.
>>> nums = [2,8,5,3,11,7,9]
>>> total = 0
>>> for num in nums:
... total += num
...
>>> total
45
Utilisation de la fonction Réduire
Une autre approche pour additionner les itérables consiste à utiliser le reduce()
fonction. La fonction reduce, intégrée à Python module d'outils fonctionnels, prend une fonction et un itérable. Et réduit l'itérable en appliquant successivement la fonction sur les éléments de l'itérable.
Ici, on utilise un fonction lambda pour définir l'addition de deux nombres et passer en nums
list 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 reduce()
La fonction fonctionne en additionnant successivement deux nombres, de gauche à droite, jusqu'à ce qu'elle se réduise à une seule valeur de somme :

Utilisation d'une fonction personnalisée
Nous pouvons également définir une fonction personnalisée pour ce faire. Ici, on définit une fonction sum_list
que:
- Prend une liste de nombres comme argument et
- Renvoie la somme des éléments d'une liste.
Le corps de la fonction utilise la construction en boucle que nous avons vue précédemment. Mais définir une fonction nous donne la réutilisabilité.
>>> def sum_list(some_list):
... total = 0
... for num in some_list:
... total += num
... return total
...
Appeler le sum_list()
fonctionner avec nums
car les arguments renvoient la somme de 45 :
>>> nums = [2,8,5,3,11,7,9]
>>> total = sum_list(nums)
>>> total
45
Ensuite, découvrons le module intégré sum()
fonction. ce n'est pas seulement concis mais aussi robuste en ce sens qu'il fonctionne bien avec plusieurs itérables et types de données.
Syntax of the Python Sum Function
La syntaxe à utiliser sum()
la fonction est la suivante :
sum(iterable, start)
Ici,
iterable
est un conditions argument. 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. Appelant lesum()
La fonction avec des chaînes Python lève une exception TypeError (plus à ce sujet plus tard).start
est un optionnel argument. Il s'agit souvent d'une valeur numérique qui est ajoutée à la somme calculée. Cela peut être utile lorsque vous devez ajouter une valeur constante au résultat.
Maintenant que nous avons appris la syntaxe du Python sum()
fonction, utilisons-la pour additionner les itérables.
Summing Iterables with Sum Function

# 1. Liste
Trouvons la somme des nombres dans le nums
liste à l'aide de la sum()
fonction:
>>> 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 sum()
fonction avec l'option start
valeur. Ici, on passe dans un start
valeur de 100 en tant que positionnel argument:
>>> sum_start = sum(nums,100)
>>> sum_start
145
La start
value peut également être spécifié comme argument de mot-clé :
>>> sum_start = sum(nums,start=10)
>>> sum_start
55
# 2. tuple
La sum()
La fonction fonctionne également avec les tuples. Nous créons un tuple nums_tuple
en jetant le nums
list à un 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 le sum()
fonction avec un ensemble de nombres :
>>> nums_set = set(nums)
>>> nums_set
{2, 3, 5, 7, 8, 9, 11}
Ici, on lance le nums
liste à un Ensemble Python et calculer la somme des éléments dans nums_set
.
>>> sum_3 = sum(nums_set)
>>> sum_3
45
# 4. Dictionnaire
Considérer ce qui suit student_dict
avec les touches numériques. Remarquez ce qui se passe lorsque vous appelez le sum()
fonction avec ce dictionnaire comme argument.
>>> students_dict = {1:106,2:112,3:127}
>>> sum_4 = sum(students_dict)
>>> sum_4
6
La sum()
fonction, par défaut, renvoie la somme des clés.
Somme des clés
Nous savons que le défaut consiste à additionner les clés du dictionnaire.
Cependant, vous pouvez rendre cela plus explicite en utilisant le méthode du dictionnaire keys()
pour accéder aux clés. Et ensuite passer dans la liste des clés au sum()
fonction:
>>> sum_keys = sum(students_dict.keys())
>>> sum_keys
6
Somme des valeurs
Si vous souhaitez additionner les valeurs du dictionnaire à la place, accédez aux valeurs en appelant le values()
méthode sur l'objet dictionnaire :
>>> sum_vals = sum(students_dict.values())
>>> sum_vals
345
Using Python’s Sum Function with Other Numeric Data Types

Jusqu'à présent, nous avons vu comment utiliser le sum()
fonction avec des itérables d'entiers. Examinons maintenant quelques exemples avec d'autres types de données numériques.
Nombres complexes
La sum()
La fonction 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 le sum()
fonction 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 une meilleure précision dans le résultat de l'ajout de nombres à virgule flottante, vous pouvez utiliser le fonction fsum() du module mathématique pour additionner les itérables avec des valeurs à virgule flottante.
Flattening with the Sum Function
Voyons maintenant comment le sum()
La fonction peut être utilisée pour aplatir et concaténer les itérables.
Aplatir une liste
Supposons que nous ayons une liste imbriquée :
>>> lists = [[2,4,6],[3,5,7]]
Lorsque nous appelons le sum()
fonction en passant cette liste imbriquée comme argument avec une liste vide comme argument start
valeur:
>>> sum(lists,[])
[2, 4, 6, 3, 5, 7]
Nous voyons que la liste imbriquée s'est maintenant aplatie en une seule liste de nombres.
De manière équivalente, lorsque nous pensons que la liste est de la forme l3 = [l1,l2]
, sum()
la fonction concatène les deux listes l1
et l2
imbriqué dans la liste l3
.
📝 Comme exercice rapide, essayez d'utiliser le sum()
fonction sur d'autres itérables imbriqués.
Piège courant : n'utilisez pas la fonction sum() de Python avec des chaînes
Parce que nous avons vu que le sum()
la fonction peut être utilisée pour aplatir et concaténer des listes (et d'autres itérables comme des tuples) ; il est tentant de penser que nous pouvons également l'utiliser pour concaténer des chaînes.
Mais si vous essayez de le faire, vous tomberez sur un 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]
Alors le sum()
La fonction ne peut pas être utilisée pour additionner (ou concaténer) des chaînes.
Cependant, comme indiqué dans le message d'erreur ci-dessus, vous pouvez utiliser le join()
méthode pour concaténer une liste de chaînes en une seule chaîne.
>>> ''.join(['a','b','c'])
'abc'
Conclusion
Dans ce didacticiel, nous avons appris à utiliser le sum()
fonction pour trouver la somme de tous les éléments d'un itérable. La syntaxe générale pour utiliser le sum()
la fonction est: sum(iterable, start)
, Où iterable
est un conditions argumentation et start
est un optionnel argument.
Nous avons ensuite codé plusieurs exemples pour comprendre l'utilisation de la sum()
fonctionnent avec des itérables comme des listes, des tuples, des ensembles et des dictionnaires. Plus tard, nous avons examiné comment le sum()
La fonction peut être utilisée pour aplatir et concaténer les itérables, à l'exception des chaînes Python.
J'espère que vous avez trouvé ce tutoriel utile. Ensuite, vous voudrez peut-être consulter ce tutoriel sur La fonction de carte de Python.
-
Bala Priya est un développeur et rédacteur technique indien avec plus de trois ans d'expérience dans le domaine de la rédaction de contenu technique. Elle partage son apprentissage avec la communauté des développeurs en créant des didacticiels techniques, des guides pratiques, etc. lire la suite