首页 > 解决方案 > 在 Python 中,使用从文件中提取的值列表,如何找到浮点值列的总和?

问题描述

我无法找到使用 Python 3 从 txt 文件中提取的值列表的列的总和。该文件包含类似于以下内容的数据:

如何分别找到第二列和第三列的总和?

首先,我使用打开文件

with open('file.txt') as f:

for line in f:
    column_2 = line.split()
    b = float(column_2[-2])

    print(b)

我能够成功打印第二列值。但是,在我添加之后:

print(sum(b))

它无法运行代码。

当我运行代码时,我得到了错误:

'int' object is not callable

标签: pythonpython-3.x

解决方案


您的代码有两个问题。

首先,您已为sum. 不要为变量使用内置名称

执行del sum,一切都会好起来的。

但是,您的逻辑仍然是错误的,因为这样做只需要b 的最后一个值的总和。您需要存储您在某处看到的所有值。

以您做事的方式,最好的方法是使用累加器变量:

b_sum = 0

for line in f:
    column_2_value = float(line.split()[-2])
    b_sum += column_2_value 

IMO 更好的方法是将整个数据结构加载到内存中:

with open('Global_Temperature_Data_File.txt') as f:
    data = [row.split() for row in f.read().split('\n')]
    transposed_data = list(zip(*data))

这将transposed_data变成一个嵌套的list,其中每个内部元素代表一列。

然后你可以这样做:

b_sum = sum(transposed_data[2])

推荐阅读