Python读取文本文件中的数字以列出以计算平均值
我有一个包含很多数字的文件,我想尝试用python将其读入一个列表的列表中。然后计算它的平均值或总和或其他 这是我的文本文件:Python读取文本文件中的数字以列出以计算平均值,python,Python,我有一个包含很多数字的文件,我想尝试用python将其读入一个列表的列表中。然后计算它的平均值或总和或其他 这是我的文本文件: 1,2,5349,2398,19,3450 10,95,201,5943,234,2319482,12 这是我的代码: def ReadList(fileName): with open(fileName, 'r') as numbers: datalist = [] for line in numbers:
1,2,5349,2398,19,3450
10,95,201,5943,234,2319482,12
这是我的代码:
def ReadList(fileName):
with open(fileName, 'r') as numbers:
datalist = []
for line in numbers:
datalist.append(line.strip().split(' '))
return datalist
但是我的结果显示为datalist=['1,25349….3450',['10,95…,12'],它们在beining和末尾有撇号,我无法用它计算平均值。我尝试使用:
datalist.appent(int(line.strip().split(“”))
已经存在,它不会将数据转换为数字,但会添加一些其他错误
编辑:现在数据似乎没问题,因为我将其更改为datalist.append([int(x)for x in line.strip().split(',')])
但是当我的方法是
numbers = ReadList('data.txt')
total = 0.0
for num in numbers:
total = total + num
return total/len(nums)
同样的错误仍然出现:“TypeError:不支持+:“float”和“list”的操作数类型
我的目标是将其作为列表中的几个单独列表,计算每个单独列表的平均值,然后将其显示在列中,例如:
List# Mean
1 (Mean value of the first list( 1,2,5349,2398,19,3450))
2 (Mean value of the second list(10,95,201,5943,234,2319482,12))
您需要在
,“
处拆分,而不是在”
处拆分,因此进行此更改
line.strip().split(',')
您必须在此处执行两个操作,第一个操作必须使用','
拆分列表,然后必须将字符串转换为int
您可以使用以下方法完成此操作:
datalist.append([ int(x) for x in line.strip().split(',') ])
这段代码将拆分字符串,将字符串转换为int,然后追加到datalist变量
编辑:
你已经更新了你的问题,以下是我的回答:
在计算平均值的块中有两个错误,第一个错误是在列表列表中迭代,因此必须遍历这两个iten,第二个错误是使用了错误的值。你在计算num的len,你应该得到数字的len。这是您的最终代码:
numbers = ReadList('data.txt')
means = []
for line in numbers:
total = 0.0
for num in line:
total = total + num
means.append(total/len(numbers))
return means
你必须用逗号分开,然后转换成整数。请修改代码格式。我误解了你的问题。我已经删除了我的答案。@Onggia,我只是根据您的编辑更新了我的答案。请看一看,如果它解决了你的问题,请接受。我还有一个关于列表中的列表的问题,如果我想把两个列表中的最后一个数字都切掉怎么办?我将如何编码它。我一直在四处搜索,但多轴解释对我来说并不十分清楚。而且,我刚刚发现,这段代码的结果最终添加了第一个列表(他们继续添加以前的列表,以形成一个新的平均值,包括所有数据)@Onggia,我只是编辑我的答案来解决您指出的问题。@如果要删除列表的最后一项,可以使用[:-1]操作数,这将获得除最后一项之外的所有iten