Geekflare est soutenu par son public. Nous pouvons percevoir des commissions d'affiliation sur les liens d'achat présents sur ce site.
En Développement Dernière mise à jour : 25 septembre 2023
Partager sur :
Invicti Web Application Security Scanner - la seule solution qui offre une vérification automatique des vulnérabilités avec Proof-Based Scanning™.

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

Sommation de valeurs dans un tableur 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 de la fonction de réduction

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 fonction sum() 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

Sommation d'itérables avec la fonction Somme de Python

#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

Utilisation de la fonction Somme 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.

  • Bala Priya C
    Auteur
Merci à nos sponsors
D'autres lectures intéressantes sur le développement
Alimentez votre entreprise
Quelques outils et services pour aider votre entreprise à se développer.
  • Invicti utilise le Proof-Based Scanning™ pour vérifier automatiquement les vulnérabilités identifiées et générer des résultats exploitables en quelques heures seulement.
    Essayez Invicti
  • Web scraping, proxy résidentiel, proxy manager, web unlocker, search engine crawler, et tout ce dont vous avez besoin pour collecter des données web.
    Essayez Brightdata
  • Monday.com est un système d'exploitation tout-en-un qui vous aide à gérer vos projets, vos tâches, votre travail, vos ventes, votre CRM, vos opérations, vos flux de travail et bien plus encore.
    Essayez le lundi
  • Intruder est un scanner de vulnérabilité en ligne qui détecte les faiblesses de votre infrastructure en matière de cybersécurité, afin d'éviter des violations de données coûteuses.
    Essayer l'intrus