15

我需要使用该sum()函数来对列表中的值求和。请注意,这与使用for循环手动添加数字不同。我认为这会像下面这样简单,但我收到了TypeError: 'int' object is not callable.

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

我查看了一些其他解决方案,这些解决方案涉及设置 start 参数、定义映射或forsum(). 有人可以为我提供一个最简单的例子来sum()总结一个列表,并解释为什么它是这样完成的吗?

4

3 回答 3

47

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或类似的东西。

于 2013-09-10T23:28:14.917 回答
2
numbers = [1, 2, 3]
numsum = sum(list(numbers))
print(numsum)

如果您试图总结一个列表,这将起作用。

于 2015-08-27T08:31:05.970 回答
2

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

numbers = [1, 2, 3]
numsum = sum(numbers)
print(numsum)
于 2018-11-09T05:02:05.263 回答