我有一个包含字符串的文本文件: 21.8 18.1 19 23 26 17.8
我如何将其转换为列表,以便我可以使用它来计算平均值?
答案 0 :(得分:0)
首先获取您要执行的文件的内容:
with open("filename.txt", "r") as infile:
data = infile.read()
现在,要从您希望使用.split()
方法的字符串中获取列表,请执行以下操作:
l = data.split()
现在l
是一个字符串列表。要将其转换为数字列表,您可以使用列表推导,并执行:
l = [float(num) for num in l]
这会为您提供文件中数字的l
列表。
希望它有所帮助!
答案 1 :(得分:0)
这个怎么样?
l = [float(v) for v in open(filename).readline().split()]
答案 2 :(得分:0)
使用numpy.mean和numpy.var函数的解决方案:
import numpy as np
# 21.8 18.1 19 23 26 17.8
with open('numbers.txt', 'r') as fh:
numbers = fh.read().split(' ')
np_arr = np.array(numbers).astype(np.float)
avg = np.mean(np_arr)
variance = np.var(np_arr)
print('avg: {:.2f}, variance: {:.2f}'.format(avg, variance))
输出:
avg: 20.95, variance: 8.71