Python 提取的浮点值存储在列表列表中,而不是值列表中
我正在做一个在文本文件中查找所有浮点值并计算平均值的练习。 我已经设法提取了所有必要的值,但它们被存储在一个列表列表中,我不知道如何将它们提取为浮点数,以便进行计算。 这是我的密码:Python 提取的浮点值存储在列表列表中,而不是值列表中,python,list,floating-point,Python,List,Floating Point,我正在做一个在文本文件中查找所有浮点值并计算平均值的练习。 我已经设法提取了所有必要的值,但它们被存储在一个列表列表中,我不知道如何将它们提取为浮点数,以便进行计算。 这是我的密码: import re fname = input("Enter file name: ") fhandle = open(fname) x = [] count = 0 for line in fhandle: if not line.startswith("X-DSPAM-Confidence:") : c
import re
fname = input("Enter file name: ")
fhandle = open(fname)
x = []
count = 0
for line in fhandle:
if not line.startswith("X-DSPAM-Confidence:") : continue
s = re.findall(r"[-+]?\d*\.\d+|\d+", line)
x.append(s)
count = count + 1
print(x)
print("Done")
这是x的输出:
[['0.8475'], ['0.6178'], ['0.6961'], ['0.7565'], ['0.7626'], ['0.7556'], ['0.7002'], ['0.7615'], ['0.7601'], ['0.7605'], ['0.6959'], ['0.7606'], ['0.7559'], ['0.7605'], ['0.6932'], ['0.7558'], ['0.6526'], ['0.6948'], ['0.6528'], ['0.7002'], ['0.7554'], ['0.6956'], ['0.6959'], ['0.7556'], ['0.9846'], ['0.8509'], ['0.9907']]
Done
您可以从一开始就创建一个浮动的平面列表:
# ...
for line in fhandle:
# ...
s = re.findall(r"[-+]?\d*\.\d+|\d+", line)
x.extend(map(float, s))
请注意,
re.findall
返回一个列表,因此我们通过它扩展x
,同时对其中的所有字符串应用float
。这正是我所需要的。非常感谢。我不知道“re.findall”返回一个列表。但很高兴我发现了。