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

Python如何实现选手比赛结果映射为指定字典输出格式

问题描述

现有输入数据:

results = [
    {'WP': 'A', 'BP': 'B', 'result': '2-0'},
    {'WP': 'C', 'BP': 'A', 'result': '1/2-1/2'},
]

需要转换为如下格式的输出:

{
    'A': [
        ('B',2.0),
        ('C',0.5)
    ],'B': [
        ('A',0.0)],
        'C':[('A',0.5)
    ]
}
实现代码
from collections import defaultdict

def str_to_score(score_str):
    # 处理分数字符串转浮点
    if '/' in score_str:
        numerator, denominator = map(int, score_str.split('/'))
        return numerator / denominator
    return float(score_str)

output = defaultdict(list)
for match in results:
    wp, bp = match['WP'], match['BP']
    wp_score_str, bp_score_str = match['result'].split('-')
    wp_score = str_to_score(wp_score_str)
    bp_score = str_to_score(bp_score_str)
    # 分别给双方添加对阵记录
    output[wp].append((bp, wp_score))
    output[bp].append((wp, bp_score))

# 转为普通字典(可选,按需保留)
output = dict(output)
print(output)

运行代码后即可得到符合要求的输出结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 03:06:03