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

Python按空行分割解析玩家列表与对战轮次数据的实现方法

Python空行分隔对战记录解析实现

核心实现步骤

  • 拆分顶级内容块:先去除原始输入首尾空白,用正则匹配连续空行做分隔符,把输入拆成多个独立内容块,拆分逻辑兼容空行夹带空格、制表符的异常格式。
  • 提取玩家列表:拆分得到的第一个内容块是玩家名单,按换行逐行切分,去除每行首尾空白、过滤空行后得到完整玩家列表,可直接赋值给result类的name属性。
  • 提取对战轮次:第一个块之后的所有内容块,每个块对应一个独立对战轮次;每个轮次块按换行切分,逐行去空白、过滤空行后,每行对应一场对战记录。
  • 解析单场对战:每场对战行按空白字符切分字段,前两个字段为对战双方名称,后两个字段转为浮点数类型,分别映射为player_1、player_2、score_player_1、score_player_2即可。

可直接运行的代码示例

import re

# 原始输入
input_content = """Andrew
Bob
Chanel
Danielle

Andrew Chanel 1 0
Danielle Bob 0 1

Andrew Danielle 0.5 0.5
Chanel Bob 1 0

Andrew Bob 0.5 0.5
Chanel Danielle"""

# 按空行拆分所有顶级块,自动过滤空块
blocks = [b.strip() for b in re.split(r'\n\s*\n', input_content.strip()) if b.strip()]

# 1. 提取玩家列表
player_list = [name.strip() for name in blocks[0].split('\n') if name.strip()]
# 类属性赋值示例:result.name = player_list

# 2. 提取并解析所有轮次、对战数据
all_rounds = []
for round_order, round_block in enumerate(blocks[1:], start=1):
    match_lines = [line.strip() for line in round_block.split('\n') if line.strip()]
    round_matches = []
    for line in match_lines:
        fields = line.split()
        # 兼容示例中最后一行无比分的未完成对战场景,可按需调整
        if len(fields) < 4:
            round_matches.append({
                "player_1": fields[0],
                "player_2": fields[1],
                "score_player_1": None,
                "score_player_2": None
            })
            continue
        p1_name, p2_name, s1, s2 = fields
        round_matches.append({
            "player_1": p1_name,
            "player_2": p2_name,
            "score_player_1": float(s1),
            "score_player_2": float(s2)
        })
    all_rounds.append({
        "round_seq": round_order,
        "match_list": round_matches
    })

# 验证输出
print("参与玩家:", player_list)
print("各轮次对战解析结果:", all_rounds)

注意事项

  • 不要直接用split('\n\n')拆分空行,该写法无法识别夹带空格、制表符的不规范空行,用正则r'\n\s*\n'做分隔符兼容性更强。
  • 比分字段统一转float类型,不要转int,否则遇到0.5的平局记录会抛出转换错误。
  • 代码里对字段不足的对战行做了空值兼容,你可以根据实际业务需求调整校验、报错逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 05:27:46