【发布时间】:2020-10-07 01:21:58
【问题描述】:
我正在创建一个程序,它读取 2 个不同的文件,每个文件都包含 10000 个数字,并计算它们的平均值和标准差。尝试创建所有数字的列表时遇到问题。我想使用 re.findall 只找到负数和正数并将其添加到列表中。但我似乎无法让它工作,无论我尝试什么,它都会返回一个空列表。到目前为止,这是我的代码:
import os
import math
import re
def mean(lst):
total = 0
nums = 0
for i in lst:
nums += 1
total += i
mean_num = total / nums
mean_num = round(mean_num, 1)
return mean_num
def std(lst):
mean_num = mean(lst)
total = 0
nums = 0
for i in lst:
i -= mean_num
i **= 2
total += i
nums += 1
std_num = total / nums
std_num = math.sqrt(std_num)
return std_num
path1 = os.getcwd()
path1 += "/data/file_10000integers_A.txt"
path2 = os.getcwd()
path2 += "/data/file_10000integers_B.txt"
with open(path1, "r") as f:
string1 = f.read()
list1 = re.findall("^[-+]?\d*$", string1)
with open(path2, "r") as f:
string2 = f.read()
list2 = re.findall("^[-+]?\d*$", string2)
print(list1)
print(mean(list1), std(list1))
print(mean(list2), std(list2))
【问题讨论】:
标签: python python-3.x regex list