题解 | #简单错误记录#
简单错误记录
http://www.nowcoder.com/practice/2baa6aba39214d6ea91a2e03dff3fbeb
dic = {} rank = 1 while True: try: file = input().split("\\")[-1].split() filename, line = file[0], int(file[1]) if (filename, line) not in dic: dic[(filename, line)] = [1, rank] rank += 1 else: dic[(filename, line)][0] += 1 except: # print("dic", dic) # res = sorted(dic.items(),reverse=True) # 按照value进行升序排列 # reversedic = dict(([v, k] for (k, v) in dic.items())) 这是字典key,value两者之间的翻转 newdic = sorted(dic.items(), key = lambda x:x[1][1])[-8:] # 按照输入顺序升序排列,越早输入的越在前,并且选择后8个就行 # print(newdic) i = 0 for key, value in newdic: # 遍历即可 i += 1 if i > 8: break else: print(key[0][-16:], key[1], value[0]) break
问题1:怎样输出最后8个
把前8个[:8]写为[-8:]
问题2:细细读题,人家没有让用个数排序,所以不需要按照错误个数排序
问题3:如何导致顺序不乱
制造一个rank,如果第一次出现,令他为1,如果不是第一次出现,在原先基础上+1
问题4:为什么最先不输出
因为没有选取文件名的范围
问题5:怎样对字典进行排序
newdic = sorted(dic.items(), key= lambda x:(f(x))) reverse 默认升序