我需要显示来自外部文件的分数和前五名获胜分数,但我不确定如何在python上执行此操作

2cmtqfgy  于 2023-02-28  发布在  Python
关注(0)|答案(1)|浏览(101)

我需要从一个外部文件排序,并排序他们从最大的数字,如50,安德鲁是最大的分数,然后0,安德鲁,但我一直无法做到这一点。
我曾尝试使用气泡排序和分裂后,逗号,以排序它从最大到最小,但我一直无法这样做,我坚持在这一部分,为我的学校项目,任何帮助将真正帮助我了。
该文件的格式为:

-10 , Kevin
10 , Andrew
100 , Antonio

score = 0
open("score.txt")
scorefile = open("score.txt", "r")
file_contents = scorefile.read()
leaderboard = file_contents.split(",")
leaderboard = file_contents.split("\n")

以上是我到目前为止得到的,但不知道该怎么做后,泡沫排序或其他东西时,数字可以从列表中未知。我的分数是从一个人玩的游戏生成,并添加到文件中,所以排行榜应该能够改变。

0mkxixxg

0mkxixxg1#

.read()函数将文件作为一个单独的字符串读取。这可能会使解析和排序变得困难。您可能需要考虑使用.readlines()函数,它将每行作为列表的一个元素读取和存储。
由于这是一个学校项目,我认为讨论整个解决方案是不合适的,但是,您应该能够修改下面的代码以满足您的需要。

# reads each line into list from text file
file_contents = scorefile.readlines()

# iterates over array and performs bubble sort
for i in range(0, len(file_contents)-1):
  if file_contents[i][:file_contents[i].find(" ")] < file_contents[i+1][:file_contents[i+1].find(" ")]:
    file_contents[i], file_contents[i+1] = file_contents[i+1], file_contents[i]

然后,您可以将排序后的列表写入输出文件(注意"\n")。
如果您将其作为一个函数,则可以在更新文本文件时调用它,以确保正确排序。
祝你的项目好运!

相关问题