这个题目的描述容易产生歧义,或者说描述不太明确,具体问题在注释中阐述。

#Tips:
#字典是无序的,没有第一个的概念,这道题用字典做应该有点麻烦

#思路:
#使用字典存储,文件名和行数做键,错误个数做值
#放弃字典,使用两个列表做

#题目的坑:
#这个题目描述有歧义,按他的描述可以有两个思路:
#1、最多存8条记录,新的记录如果在里面则将该记录+1,如果不在则删除第一条记录再新增
#2、可以存所有的记录,有相同的直接+1,只是在输出的时候输出最后8条
#这两种思路做出来的结果是不一样的
#我认为可以将题目中的【1、 记录最多8条错误记录...】改为【1、 记录所有错误记录,输出最近8条错误记录】

f=[]#文件列表
n=[]#数量列表
while True:
    try:
        a=input()
        #可能带路径
        if "\\" in a:
            a=a.split("\\")[-1]
        #判断长度
        b=a.split()[0]#获取文件名
        c=a.split()[1]#获取行号
        if len(b)>16:
            a=b[-16:]+" "+c
        #新增记录
        if a not in f:
            f.append(a)
            n.append(1)
        else:
            n[f.index(a)]+=1

        #如果理解为只能存储8条就会写出下面注释这段代码
        #新增完毕之后检查记录数量是否超过8
        #if len(f)>8:
        #    f.pop(1)
        #    n.pop(1)
        
    except:
        #输出
        f=f[-8:]
        n=n[-8:]
        for i in range(len(f)):
            print(f[i],n[i])
        break