Comment additionner tous les éléments d'une liste sous python ?

Posted on 19 février 2015 Edit


Exemples de comment additionner tous les éléments d'une liste sous python:

Additionner tous les éléments d'une liste avec la fonction sum()

Pour sommer tous les éléments d'une liste sous python il existe la fonction "Built-in" sum(), illustration:

>>> list = [1,2,3,4]
>>> sum(list)
10

avec des nombres décimaux:

>>> l = [3.1,2.5,6.8]
>>> sum(l)
12.399999999999999

on peut aussi arrondir le résultat comme ceci (voir Floating Point Arithmetic: Issues and Limitations):

>>> round(sum(l),1)
12.4

Additionner tous les éléments d'une liste avec une boucle for

Exemple de comment additionner tous les éléments d'une liste avec une boucle

>>> list = [1,2,3,4]
>>> tot = 0
>>> for i in list:
...     tot = tot + i
... 
>>> tot
10

Additionner tous les nombres d'une liste quelconque

Un autre exemple avec une liste comprenant des entiers, des nombres décimaux et des lettres:

>>> l = ['a',1,'f',3.2,4]
>>> sum([i for i in l if isinstance(i, int) or isinstance(i, float)])
8.2

Fusionner tous les éléments d'une liste de "string":

Pour une liste composée de "string" la fonction sum() ne marche pas:

>>> list = ['a','b','c','d']
>>> sum(list)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str'

Pour concaténer une liste de "string" il faut utiliser join():

>>> ','.join(list)
'a,b,c,d'
>>> ' '.join(list)
'a b c d'

Références