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

19 février 2015    /    Viewed: 62168    /    Comments: 0    /    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

Liens Site
Built-in Functions
Summing elements in a list stackoverflow
string — Common string operations python doc
Joining elements of a list - Python stackoverflow


Card image cap
profile-image
Daidalos

Hi, I am Ben.

I have developed this web site from scratch with Django to share with everyone my notes. If you have any ideas or suggestions to improve the site, let me know ! (you can contact me using the form in the welcome page). Thanks!