在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