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

套利投注脚本:球队对阵与赔率文件读取的输出格式优化求助

优化套利投注脚本的输出格式

问题分析

原代码输出杂乱的核心原因:

  1. 读取文件时未处理每行的换行符(\n)和空白字符
  2. 直接打印zip_longest生成的元组,导致输出包含括号、引号
  3. 未对球队和赔率进行结构化分组后格式化输出

优化后的代码

import itertools

# 读取并预处理球队名:去除空白行和换行符
with open('sports_event_organizer', 'r') as names_file:
    teams = [line.strip() for line in names_file if line.strip()]

# 读取并预处理赔率:去除空白行和换行符
with open('odds_organizer', 'r') as odds_file:
    odds = [line.strip() for line in odds_file if line.strip()]

# 自定义分组函数(兼容Python 3.9及以下版本)
def group_items(iterable, group_size):
    iterator = iter(iterable)
    while True:
        group = tuple(itertools.islice(iterator, group_size))
        if not group:
            break
        yield group

# 将球队两两分组,赔率三三分组
team_pairs = group_items(teams, 2)
odd_triples = group_items(odds, 3)

# 按期望格式输出
for (team1, team2), (odd_win, odd_draw, odd_lose) in zip(team_pairs, odd_triples):
    print(f"{team1} - {team2}")
    print(odd_win)
    print(f"{odd_draw} (draw)")
    print(odd_lose)
    print()

关键改动说明

  • 预处理数据:用strip()去除每行的换行符和首尾空白,彻底消除输出中的\n
  • 结构化分组:通过自定义分组函数(或Python3.10+的itertools.batched)将球队两两配对、赔率按胜/平/负分组,避免原代码中zip_longest生成的冗余结构
  • 格式化输出:使用f-string直接拼接内容,完全匹配你需要的整洁格式,不再打印元组的原始结构

注意事项

  • 若使用Python3.10及以上版本,可以用itertools.batched(teams, 2)替代自定义的group_items函数,代码更简洁
  • 你的球队文件有20支球队(生成10组对阵),但赔率文件只有9组赛事数据,zip会自动只处理前9组配对,最后一组球队会被忽略,若需匹配请调整文件内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 23:40:29