题解 | #简单错误记录#
简单错误记录
https://www.nowcoder.com/practice/2baa6aba39214d6ea91a2e03dff3fbeb
import sys import re lists=[] for line in sys.stdin: line = line.rstrip("\n") lists.append(line) def f(x): # 匹配最后一个反斜杠后面的所有内容 x=re.findall(r"\\([a-z]+\s[0-9]+)",x)[-1] return x lists=list(map(f,lists)) def f1(x): # 匹配空格前面的内容,取后16位 x1=re.findall(r"(.*)\s",x) x1=x1[0][-16::] # 匹配空格和代码行数 x2=re.findall(r"(\s[0-9]+)",x) return x1+str(x2[0]) # file_name_row就是后16位+代码行数 file_name_row=list(map(f1,lists)) dic={} list1=[] num=0 # 把后16位和代码行数作为字典的键,赋值默认为1,如果第二次出现,值加1 for i in file_name_row: dic[i]=1 if i in list1: dic[i]=dic[i]+1 pass else: list1.append(i) num+=1 # 在包含所有错误的文件里取最后8个 list_end=list1[-8:] for i in list_end: print(i+" "+str(dic[i]))