题解 | #简单错误记录#
简单错误记录
https://www.nowcoder.com/practice/2baa6aba39214d6ea91a2e03dff3fbeb
log = {} # key:文件名_行数 value:出现次数 log_li = [] # 用来输出最后八项的列表 def get_line_number(record): # 根据输入拆分出行数 line_number = int(record.split(" ")[1]) return line_number def get_file_name_short(record): # 根据输入拆分出保留后16位的文件名 file_name = record.split(" ")[0].split("\\")[-1] if len(file_name) >= 16: file_name_short = file_name[len(file_name)-16:len(file_name)] else: file_name_short = file_name return file_name_short def name_line_comb(file_name_short, line_number): # 用"_"组合文件名和行数,输出作为判断是否重复的唯一标识符 return str(file_name_short) + "_" + str(line_number) def err_record(record): # 根据输入将该条错误记录在字典中 file_name_short = get_file_name_short(record) line_number = get_line_number(record) name_comb = name_line_comb(file_name_short, line_number) if name_comb in log.keys(): log[name_comb] += 1 else: log[name_comb] = 1 while True: try: err_record(input()) except: break for key in log: log_li.append([key, log[key]]) for i in log_li[len(log_li)-8:len(log_li)]: print(i[0].split("_")[0] + " " + str(i[0].split("_")[1]) + " " + str(i[1]))