【发布时间】:2020-12-14 14:35:06
【问题描述】:
我有一个包含很多数字的文件:
0.98
0.23
0.10
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
10.3
11.9
0.56
...
我想打印数字 0 连续重复 10 次的行数(至少)。考虑到上面的输入,输出将是:4(对于第 4 行,因为 0 es 连续重复了 10 次)。文件 list.txt 是一个巨大的文件。我是 Python 新手。如何删除以下脚本中的错误:
import ast
values = open("list.txt","r")
values = list(map(int, ast.literal_eval(values.read().strip())))
count=0
length=""
if len(values)>1:
for i in range(1,len(values)):
if values[i-1]==values[i]:
count+=1
else :
length += values[i-1]+" repeats "+str(count)+", "
count=1
length += ("and "+values[i]+" repeats "+str(count))
else:
i=0
length += ("and "+values[i]+" repeats "+str(count))
print (length)
【问题讨论】:
-
"文件 list.txt 是一个巨大的文件" - 然后逐行执行。您是否对第一次出现(在本例中为第 4 行)或所有出现的模式感兴趣?
-
我想逐行读取文件,当它发现一个数字 0 连续重复 10 次时停止,就这样,不管模式的所有出现。
标签: python file iteration processing-efficiency