这个题目的描述容易产生歧义,或者说描述不太明确,具体问题在注释中阐述。
#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

京公网安备 11010502036488号