题解 | #简单错误记录#
简单错误记录
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 默认升序