如何在Python上从外部文本文档打印已排序的列表?

2024-09-30 18:26:22 发布

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

我正在做我的GCSE计算机科学编程项目,想知道是否能得到一些帮助。我有一个代码,可以在一个外部文档上打印出骰子游戏中不同玩家的分数,以及是哪个玩家实现的:

total1 = str(total1)
total2 = str(total2)
if total2 > total1:
    file = open("winners.txt", "a")
    winner = "Player2"
    file.write("\n" + winner + ", " + total2)

if total1 > total2:
    file = open("winners.txt", "a")
    winner = "Player1"
    file.write("\n" + winner + ", " + total1)

然而,该项目要求对这个列表进行排序,并将排序后的列表(仅显示前五名的分数)放入外部文本文档中。我有这个密码:

^{pr2}$

但我不知道该怎么办。非常感谢帮助!在


Tags: 项目txt列表if排序玩家open分数
2条回答

这将只将前5个分数写入您的文本文件:

sortedlist = data.sort()
with open("top scores.txt", "a+") as ts:
    ts.write("The top scorers are: ")
    for score in sortedlist[:5]:
        ts.write(score)

注意如果每行winners.txt从球员的名字开始,而不是分数,然后对名单进行排序将按球员姓名而不是分数排序。但是,如果你有一个字符串列表,以“player_name,score”的形式,你可以这样做来生成一个按最高分数到最低分数排序的分数列表:

>>> scores = ['Player1, 80', 'Player1, 90', 'Player2, 70', 'Player2, 100']
>>> splitscores = [s.split(', ') for s in scores]
>>> numscores = [ (int(s[1]), s[0]) for s in splitscores ]
>>> numscores.sort(reverse=True)
>>> numscores
[(100, 'Player2'), (90, 'Player1'), (80, 'Player1'), (70, 'Player2')]

使用这种方法,您应该能够将所有分数放入一个列表中,然后获得前5个分数的分数值和赢家名称。在

顺便说一下,您可能希望在代码中包含一些file.close()语句来完成这些open()命令。在

相关问题 更多 >