如何取浮点列表的总和?

时间:2014-02-20 03:40:10

标签: python

我的代码

final = replace.split()
for word in final:
    if word >= "0":
        if word <= "9":
            add = (word.split())
            floats = [float(x) for x in add]
            print(floats)

它给了我

[3236.789]
[4.3]
[6.7]
[5.2]

当我使用print(sum(floats))时,它给了我相同的东西,没有括号。

3236.789
4.3
6.7
5.2

我做错了什么?我如何得到这些数字的总数?

1 个答案:

答案 0 :(得分:2)

每个都是列表中的单个值。在循环外部创建一个空列表并附加到它可能更有意义。从你的输出来看,我认为你的列表理解是不必要的。尝试这样的事情:

nums = []
for word in replace.split():
    # Do the checks if you must
    nums.extend(float(word))

print(sum(nums))

这可能非常简单,但在代码逻辑中添加一些打印语句可能会有所帮助。在print(word)循环后尝试for,看看您的数据是否处于您期望的状态。我这样说是因为从您的代码和输出来看,似乎发生了一些不必要的操作。

此外,floats是变量的错误名称;它与你也使用的内置float太相似了。 replace也是如此,因为它是一个字符串方法。