web-dev-qa-db-fra.com

Python sum () avec paramètre de liste

Je suis obligé d'utiliser la fonction sum () pour additionner les valeurs d'une liste. Veuillez noter qu'il est DISTINCT d'utiliser une boucle 'pour' pour ajouter les numéros manuellement. Je pensais que ce serait quelque chose de simple comme ci-dessous, mais je reçois 'TypeError: l'objet' int 'n'est pas appelable'.

numbers = [1, 2, 3]
numsum = (sum(numbers))
print(numsum)

J'ai examiné quelques autres solutions qui impliquaient la définition du paramètre de démarrage, la définition d'une carte ou l'inclusion de la syntaxe 'pour' dans sum (), mais je n'ai pas eu de chance avec ces variations et je ne peux pas comprendre ce qui se passe. . Quelqu'un pourrait-il me fournir l'exemple le plus simple possible de sum () qui résumera une liste et expliquera pourquoi il est utilisé tel qu'il est?

16
Ro Mc

Avez-vous utilisé la variable sum ailleurs? Cela l'expliquerait.

>>> sum = 1
>>> numbers = [1, 2, 3]
>>> numsum = (sum(numbers))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable

Le nom sum ne désigne plus la fonction, il désigne un entier.

Solution: N'appelez pas votre variable sum, appelez-la total ou quelque chose de similaire.

46
flornquake

Dans la dernière réponse, vous n'avez pas besoin de faire une liste à partir de nombres; c'est déjà une liste:

numbers = [1, 2, 3]
numsum = sum(numbers)
print(numsum)
2
Bob McCormick
numbers = [1, 2, 3]
numsum = sum(list(numbers))
print(numsum)

Cela fonctionnerait si vous essayez de résumer une liste.

2
jasper