按文本文件每行的第二个单词对行进行排序,然后显示i

2024-06-16 10:21:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我必须将一个文件按人们获得的最高分数进行排序,并将其排序后的版本显示在python中。 我当前的文件是这样的。在

Bob: 0 /10

Bob: 1 /10

Jane: 9 /10

Drake: 5 /10

Dan: 4 /10

Josh: 1 /10

Dan: 5 /10

(excluding the empty lines)

如何在python上进行排序和显示?在


Tags: 文件the版本排序分数drakeemptybob
2条回答

您需要编写代码来一次一行读取文件,跳过任何空行,并将三个有趣的部分分开。这可以使用一个正则表达式来完成,该表达式能够从每一行提取名称、标记和总计到一个元组中。在

所以对于每一行,你会得到一个元组,看起来像:

('Bob', '1', '10')

然后将这个元组追加到一个名称列表中。然后可以对该列表进行排序。在您的示例中,所有结果都是满分10。但是如果20个里面有一个呢?在

以下是一种可能的方法:

^{pr2}$

这将显示以下内容:

Jane - 9 out of 10
Drake - 5 out of 10
Dan - 5 out of 10
Dan - 4 out of 10
Bob - 1 out of 10
Josh - 1 out of 10
Bob - 0 out of 10

如果您有一个filegrades

lines = grades.read().splitlines()
lines.sort(key=lambda line: int(line.split()[1]))

for line in lines:
    print line

相关问题 更多 >