带有列表参数的 Python sum() 函数

2022-01-09 00:00:00 python list typeerror sum int

问题描述

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

I am required to use the sum() function in order to sum the values in a list. Please note that this is DISTINCT from using a for loop to add the numbers manually. I thought it would be something simple like the following, but I receive TypeError: 'int' object is not callable.

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

我查看了一些其他解决方案,这些解决方案涉及设置 start 参数、定义地图或在 sum() 中包含 for 语法,但我没有这些变化的任何运气,并且无法弄清楚发生了什么.有人可以为我提供最简单的 sum() 示例,该示例将汇总一个列表,并解释为什么它会以这种方式完成?

I looked at a few other solutions that involved setting the start parameter, defining a map, or including for syntax within sum(), but I haven't had any luck with these variations, and can't figure out what's going on. Could someone provide me with the simplest possible example of sum() that will sum a list, and provide an explanation for why it is done the way it is?


解决方案

你在其他地方使用过变量 sum 吗?这样就可以解释了.

Have you used the variable sum anywhere else? That would explain it.

>>> 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 这个名字现在不再指向函数,它指向一个整数.

The name sum doesn't point to the function anymore now, it points to an integer.

解决方案:不要将变量称为 sum,将其称为 total 或类似的名称.

Solution: Don't call your variable sum, call it total or something similar.

相关文章