带有list参数的Python sum()函数

时间:2013-09-10 23:22:55

标签: python list int sum typeerror

我需要使用sum()函数来对列表中的值求和。请注意,使用'for'循环手动添加数字是DISTINCT。我认为它会像下面这样简单,但我收到'TypeError:'int'对象不可调用'。

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

我查看了一些其他涉及设置start参数,定义地图或在sum()中包含'for'语法的解决方案,但我对这些变化没有任何好运,也无法弄清楚这是怎么回事。有人可以向我提供sum()的最简单的例子,它将对列表进行求和,并解释为什么它按照它的方式完成?

3 个答案:

答案 0 :(得分:46)

您是否在其他地方使用过变量sum?这可以解释它。

>>> 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

名称sum现在不再指向该函数,它指向一个整数。

解决方案:请勿调用变量sum,将其称为total或类似内容。

答案 1 :(得分:2)

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

如果您正在尝试汇总列表,这将有效。

答案 2 :(得分:2)

在最后一个答案中,您不需要从数字中列出清单;它已经是一个列表:

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