编程语言
首页 > 编程语言> > 在Python中,从文件中提取值的列表,如何找到浮点值的列之和?

在Python中,从文件中提取值的列表,如何找到浮点值的列之和?

作者:互联网

我在查找使用Python 3从txt文件提取的值列表的列的总和时遇到麻烦.该文件包含的数据看起来像这样:

> 1800 -0.19 -0.11
> 1801 -0.1 -0.17
> 1802 -0.2 -0.11
>.
>. [续]
>.
> 1900 -0.15 -.15

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

首先,我使用

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

解决方法:

您的代码有两件事.

首先,您为总和分配了一些值.不要为变量使用内置名称.

执行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转换为一个嵌套列表,其中每个内部元素代表一列.

然后,您可以执行以下操作:

b_sum = sum(transposed_data[2])

标签:python-3-x,python
来源: https://codeday.me/bug/20191210/2104919.html