题解 | #简单错误记录#

简单错误记录

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]))

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务