Geekflare est soutenu par notre public. Nous pouvons gagner des commissions d'affiliation en achetant des liens sur ce site.
In Développement Dernière mise à jour : 12 juin 2023
Partager sur:
Scanner de sécurité des applications Web Invicti – la seule solution qui offre une vérification automatique des vulnérabilités avec Proof-Based Scanning™.

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

Somme des valeurs dans un itérable Python

📋 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 de la fonction de réduction

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

Somme-Iterables-avec-Pythons-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

Utilisation de Pythons-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 C
    Auteur
    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
Merci à nos commanditaires
Plus de bonnes lectures sur le développement
Alimentez votre entreprise
Certains des outils et services pour aider votre entreprise à se développer.
  • Invicti utilise 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, moteur de recherche et tout ce dont vous avez besoin pour collecter des données Web.
    Essayez Brightdata
  • Monday.com est un système d'exploitation de travail tout-en-un pour vous aider à gérer les projets, les tâches, le travail, les ventes, le CRM, les opérations, workflowset plus encore.
    Essayez Monday
  • Intruder est un scanner de vulnérabilités en ligne qui détecte les failles de cybersécurité de votre infrastructure, afin d'éviter des violations de données coûteuses.
    Essayez Intruder