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

Python基于列表输入实现计分板:玩家积分累加问题求助

解决回合制比赛计分板的积分累加问题

问题说明

你已经完成了计分板的基础数据处理,但卡在了积分累加环节——需要为每场比赛的白方、黑方玩家分别累加对应得分。

示例输入:

[
    ['Erik', 'Daniel', 'Charlotte', 'Anna', 'Bob', 'Femke'],
    ['Anna Femke 1 0', 'Bob Erik 0 1', 'Charlotte Daniel 0.5 0.5'],
    ['Erik Anna 1 0', 'Femke Charlotte 0.5 0.5', 'Daniel Bob 1 0'],
    ['Daniel Erik 0.5 0.5', 'Charlotte Anna 1 0', 'Bob Femke 1 0']
]

期望输出:

Erik: 2.5
Daniel: 2
Charlotte: 2
Anna: 1
Bob: 1
Femke: 0.5

完整解决方案

修改后的代码

class player_result:
    def __init__(self, name: str):
        self.name = name
        self.points = 0.0  # 新增积分属性,初始化为0

def determine_output(input_data):
    # 提取玩家名单和所有回合的比赛数据
    playernames = input_data[0]
    rounds_data = input_data[1:]

    # 用字典存储玩家实例,通过名字快速定位
    players = {name: player_result(name) for name in playernames}

    # 遍历每一轮的所有比赛
    for round_matches in rounds_data:
        for match in round_matches:
            # 拆分单场比赛的信息
            white_player, black_player, white_score, black_score = match.split()
            # 转换为浮点数类型
            w_points = float(white_score)
            b_points = float(black_score)
            # 累加积分
            players[white_player].points += w_points
            players[black_player].points += b_points

    # 按要求格式输出最终得分
    for name in playernames:
        print(f"{name}: {players[name].points}")

# 测试示例输入
sample_input = [
    ['Erik', 'Daniel', 'Charlotte', 'Anna', 'Bob', 'Femke'],
    ['Anna Femke 1 0', 'Bob Erik 0 1', 'Charlotte Daniel 0.5 0.5'],
    ['Erik Anna 1 0', 'Femke Charlotte 0.5 0.5', 'Daniel Bob 1 0'],
    ['Daniel Erik 0.5 0.5', 'Charlotte Anna 1 0', 'Bob Femke 1 0']
]

determine_output(sample_input)

关键修正点

  1. 给player_result类添加points属性:初始化时设置为0.0,用于累计玩家得分
  2. 使用字典存储玩家实例:避免遍历列表查找玩家,通过名字直接定位,提升效率
  3. 正确处理比赛数据:拆分每场比赛的字符串,转换得分类型后,分别加到对应玩家的积分上
  4. 修正输入处理逻辑:直接从输入列表中提取玩家名单和回合数据,替代原代码中错误的字符串拆分逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 16:09:26