gpt4 book ai didi

python - 输出总是一个空列表

转载 作者:行者123 更新时间:2023-12-01 09:11:12 25 4
gpt4 key购买 nike

练习 2:编写一个程序来查找以下形式的行:

New Revision: 39772

使用正则表达式和 findall() 方法从每行中提取数字。

计算数字的平均值并打印出平均值。

输入文件是“mbox-short.txt”。

import re
fname=input("enter the file name:")
fhandle=open(fname)
total=0
count=0
for x in fhandle:
y=re.findall("^New Revision:(\s [0-9]*) ",x)
total=total+y
count=count+1
print(y)
print("total and average is:",total,total/count)

还有人可以建议如何将列表中的所有元素转换为 float

最佳答案

你的正则表达式末尾有太多的' ',这就是为什么它从来没有找到东西。

findall() 与您启动的模式将仅返回 1 个命中(或 0 个命中) - 由于以 ^ 开头。

import re

fname=input("enter the file name:")
fhandle=open(fname)
total=0.0
count=0
for x in fhandle:
y=re.findall(r"^New Revision:(\s*[0-9]*)",x) # 0 or 1 hit
if y:
total += float(y [0] ) # to float if found
count += 1
print("total and average is:",total,total/count)

使用文本的示例:

t = """New Revision: 129
New Revision: 129
New Revision: 129
New Revision: 129
New Revision: 129
"""

import re
total=0.0
count=0
for x in t.splitlines():
y=re.findall("^New Revision:(\s*[0-9]*)",x)
if y:
total += float(y [0] )
count += 1
print(y)
print("total and average is:",total,total/count)

输出:

total and average is: 645.0 129.0

关于python - 输出总是一个空列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51637942/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com