题解 | #简单错误记录#
简单错误记录
https://www.nowcoder.com/practice/2baa6aba39214d6ea91a2e03dff3fbeb
eDict = {}
eList = []
msg = input()
while msg != '':
path, line = msg.split()
file, line = path.split('\\')[-1][-16:], int(line)
if (file, line) not in eList:
eList.append((file, line))
eDict[(file,line)] = eDict.get((file,line), 0) + 1
try:
msg = input()
except:
msg = ''
for e in eList[-8:]:
print(*e, eDict[e])
显而易见的解法,根据题目的要求先进行数据的处理,获取文件的后16个字符和行数。 有顺序且重复录入只记第一次,显然是不重复列表来存储这些信息。计数操作很快就会想到字典的方式,关键是key的选择,我们根据题目的要求,文件16后字符和行数,显然我们把这个作为字典的key刚刚好。最后从列表里取出保存的最后8项,以此为键来获取字典的值。
