You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Python的print_leaderboard函数输出Name: Score格式的排行榜?

解决Python排行榜输出格式问题

你当前的scoreboard列表里存储的是(score, name)格式的元组,直接打印会输出元组结构。要实现Name: Score的输出格式,只需要拆分元组元素并按指定格式拼接即可,下面提供两种方案:

方案一:直接修改打印逻辑(基于现有元组存储)

修改Scoreboard类的print_leaderboard方法,遍历前3个排序后的条目,拆分元组并格式化输出:

def print_leaderboard(self):
    self.scoreboard.sort(reverse=True)
    # 遍历排行榜前三名
    for entry in self.scoreboard[:3]:
        # 元组索引1是姓名,索引0是分数
        print(f"{entry[1]}: {entry[0]}")

运行后输出会变成:

Bob: 12103
Charlie: 8762
Alice: 7821

方案二:利用已定义的ScoreEntry类(更符合面向对象设计)

你已经定义了ScoreEntry类但未实际使用,改用这个类存储分数条目会让代码结构更清晰:

  1. 修改add_score方法,创建ScoreEntry实例并添加到列表:
def add_score(self, name, score):
    new_entry = ScoreEntry(name, score)
    self.scoreboard.append(new_entry)
  1. 修改print_leaderboard方法,按分数排序后格式化输出:
def print_leaderboard(self):
    # 按分数降序排序,通过get_score方法获取分数作为排序依据
    self.scoreboard.sort(key=lambda entry: entry.get_score(), reverse=True)
    for entry in self.scoreboard[:3]:
        print(f"{entry.name}: {entry.score}")

这个方案让代码的面向对象特性更突出,后续扩展功能也更方便。

内容的提问来源于stack exchange,提问作者Nicko Toumbas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 01:11:11