如何使用for循环将元素添加到列表中?

时间:2015-03-08 08:43:59

标签: python

我使用open(filename)打开包含数字73,85,66,0和99的文件。

我将每个号码添加到名为values的列表中。现在我想得到所有数字的平均值。我尝试使用名为sum的变量对值求和,然后打印总和。

values = []
for i in values:
    sum = sum + i
print sum:

此代码给出了以下错误:TypeError: unsupported operand type(s) for +: 'builtin_function_or_method' and 'int'

2 个答案:

答案 0 :(得分:2)

您使用sum作为变量名称,但尚未初始化。但是sum是内置函数的名称,所以你不应该将它用作变量名,因为它可能导致这样的问题。 :)你的代码告诉Python将values中的整数添加到函数中,所以它会抱怨。但这有效:

values = [1, 2, 3, 4]

total = 0
for i in values:
    total = total + i
print total

<强>输出

10

FWIW,如果我们使用sum而不是total来存储当前累积的总和,上面的代码将起作用,因为它在循环开始之前被初始化。但这不是一个好主意,因为这意味着如果您以后需要它,您将无法访问正确的sum()函数。此外,阅读代码的人有点困惑。


或者您可以使用sum()函数,因为它旨在将可迭代的内容添加到一起:

print sum(values)

<强>输出

10

答案 1 :(得分:0)

当您拨打sum = sum + i时,您还没有给sum一个值。您不能将1添加到未定义的变量。

在代码块之前声明sum = 0,它应该解决问题。

此外,在您的打印声明后不应该是冒号。这是一个错字,还是实际上在你的代码中?