我在学校里做游戏时遇到编程挑战,最后,它显示了有史以来的前五名得分。我已经能够打印出前五名的分数,但我不知道如何使其与用户名一起打印分数。代码是:
with open("login.csv") as f:
print(" ")
print(" ")
print("Usernames and scores:")
reader=csv.reader(f)
scores=(row[-1] for row in reader)
topscore=sorted(scores, reverse=True)
top5=topscore[:5]
print(top5)
我得到的输出是:
Usernames and scores:
['82', '80', '66', '64', '62']
但是我想要的输出是:
Usernames and scores:
Dylan, 82
f, 80
Farai, 66
Dylan, 64
Dylan, 62
任何帮助 迪伦
我错过了这一点,但各列分别是名称,密码和得分。很抱歉错过了这些家伙。
答案 0 :(得分:3)
您可以使用键功能对行进行排序,该功能允许基于最后一列进行排序:
with open("login.csv") as f:
print(" ")
print(" ")
print("Usernames and scores:")
reader=csv.reader(f)
topscore=sorted(reader, key=lambda row: int(row[-1]), reverse=True)
top5=topscore[:5]
print('\n'.join(', '.join((username, score)) for username, _, score in top5))
答案 1 :(得分:0)
您似乎通过列表理解只选择了分数。
假设CSV是
files