Python中如何从已排序的分数列表中仅显示前5名高分?
解决方法:获取并显示前5名高分
嘿,我来帮你快速搞定这个问题!你已经完成了文件读取和排序的核心步骤,只差两个小调整就能拿到前5名高分啦:
1. 把排序改成降序
你当前的排序是升序(分数从低到高排列),这样最前面的是最低分,我们需要把它改成从高到低排序。只需要在sort()方法里加上reverse=True参数就行。
2. 截取前5个元素
排序完成后,用Python的切片语法[:5]就能轻松获取列表的前5个元素——哪怕文件里的分数条目不足5个,这个写法也不会报错,只会返回所有现有条目,非常安全。
修改后的完整代码
ScoresFile2 = "/Users/KADAM BOYS/Desktop/Ishaan's Folder/Homework (Year 10)/Computing/Mock Project/Scores.txt" ScoresWithNames = [] with open(ScoresFile2) as file2: for line in file2: ScoresWithNames.append(line.strip()) # 改成降序排序,按分数从高到低排列 ScoresWithNames.sort(key=lambda x: int(x.split(" - ")[-1]), reverse=True) # 获取前5名高分并打印 top_5_scores = ScoresWithNames[:5] print("前5名高分:") for score in top_5_scores: print(score)
额外小提示
如果你想简化代码,也可以把最后两步合并成一行直接打印:
for score in ScoresWithNames[:5]: print(score)
这样运行后,就能看到按分数从高到低排列的前5名啦!
内容的提问来源于stack exchange,提问作者Ishaan
相关产品推荐
相关产品推荐

