首页 > 解决方案 > 如何从文本文件中打印前 5 个分数

问题描述

我有一个外部文本文件,我在其中以以下形式存储名称和分数:

(姓名)有(分数 - 整数)点

一个例子是:

鲍勃有 25 分

我想按原样打印这些行,但只能从最高分开始按降序排列。

换句话说,我想打印与文本文件中相同的行,但从行中的最高到最低整数(分数)排序。我还想限制打印的行,这意味着只打印降序的分数。

我已经尝试了很多方法,但我最终只能得到带有引号和括号的单独名称和分数,但我的目标是按原样打印这些行。

有人可以帮我吗?

标签: sorting

解决方案


直接对行进行排序,使用分数作为键sort

path = "leaderboard.txt"
with open(path, 'r') as f:
    file_lines = f.readlines()

file_lines.sort(key=lambda line: int(line.split()[2]), reverse=True)

print(''.join(file_lines[:5]))

推荐阅读