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”返回一个列表。但很高兴我发现了。