繁体   English   中英

排名前五的名字

[英]Top five names with score

我在学校有一个编程挑战,我制作一个游戏,最后,它打印了有史以来的前五个分数。 我已经能够得到它打印前五个分数,但我不知道如何使用用户名沿着它打印分数。 代码是:

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

任何帮助迪伦

我错过了这个,但列名称,密码,分数。 很抱歉错过那些人。

您可以使用允许排序基于最后一列的键函数对行进行排序:

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))

看来你只是通过列表理解来选择得分。 假设CSV类似于<username>,<score>,可能以下内容有效吗?

with open("login.csv") as f:
    print(" ")
    print(" ")
    print("Usernames and scores:")
    reader=csv.reader(f)
    scores=(row for row in reader)
    topscore=sorted(scores, reverse=True)
    for score in topscores:
        print(score[0] +",\t" + score[1])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM