sorting - 如何从文本文件中打印前 5 个分数
问题描述
我有一个外部文本文件,我在其中以以下形式存储名称和分数:
(姓名)有(分数 - 整数)点
一个例子是:
鲍勃有 25 分
我想按原样打印这些行,但只能从最高分开始按降序排列。
换句话说,我想打印与文本文件中相同的行,但从行中的最高到最低整数(分数)排序。我还想限制打印的行,这意味着只打印降序的分数。
我已经尝试了很多方法,但我最终只能得到带有引号和括号的单独名称和分数,但我的目标是按原样打印这些行。
有人可以帮我吗?
解决方案
直接对行进行排序,使用分数作为键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]))
推荐阅读
- spring-boot - 参数 ReceiptHandle 的值 {} 无效。原因:收据句柄已过期
- node.js - 如何在每个星期日午夜 00:01 在 Node JS 下编写的应用程序中更改 MongoDB 集合中的属性?
- c++ - 编译没问题,但是shared_ptr的赋值错误发生了
- spring - 具有用户定义顺序的 JPA 集合
- python - 如何在 tensorflow 2.0.0 中导入 fft2d?
- javascript - Javascript - 使用正则表达式就地处理所有匹配的组
- r - R中的列和行的走向是否重要?
- python - 如何在模块和类之间共享方法和数据?
- c# - 如何在 C# 中以字节为单位计算 POST 请求?
- ios - SwiftUI:将动画附加到过渡