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

如何从含多词球队名的文件生成球队-年份列表字典?

解决带空格球队名的字符串转字典问题

这个问题确实挺常见的——因为球队名可能包含空格,直接按空格拆分肯定会把队名拆得七零八落。我推荐用正则表达式来处理,它能精准识别球队名(字母+空格组合)和对应的年份组(数字+逗号组合),完美解决拆分难题。

实现思路

核心逻辑是利用正则的匹配规则:

  • 球队名由字母和空格组成,且后面必然跟着年份(数字开头)
  • 年份组是数字和逗号的组合,且下一个球队名必然以大写字母开头(或到字符串结尾)

用正则的非贪婪匹配和正向预查来精准捕获每一组「球队名-年份」对,再把年份转成整数列表存入字典。

代码示例

import re

# 你的原始输入字符串
input_str = "Barcelona 2015,2016,2017 Real Madrid 2010 Napoli 2007,2009 Bayern Munich 2008,2009,2010,2011,2012,2013"

# 正则匹配模式:捕获球队名和对应的年份字符串
# 解释:
# ([A-Za-z\s]+?):非贪婪匹配字母+空格,避免把后续球队名包含进来
# \s:匹配队名和年份之间的空格
# ([\d,]+):匹配年份部分(数字+逗号)
# (?=\s[A-Z]|$):正向预查,确保后面是「空格+大写字母」(下一个球队)或字符串结尾
pattern = r'([A-Za-z\s]+?)\s([\d,]+)(?=\s[A-Z]|$)'
matches = re.findall(pattern, input_str)

# 构建目标字典
team_year_dict = {}
for team, years_str in matches:
    # 去除队名前后可能的多余空格
    clean_team = team.strip()
    # 拆分年份字符串并转成整数列表
    year_list = [int(year) for year in years_str.split(',')]
    team_year_dict[clean_team] = year_list

# 输出结果
print(team_year_dict)

运行结果

执行后会得到你想要的字典:

{
    'Barcelona': [2015, 2016, 2017],
    'Real Madrid': [2010],
    'Napoli': [2007, 2009],
    'Bayern Munich': [2008, 2009, 2010, 2011, 2012, 2013]
}

补充说明

如果你的输入字符串有其他特殊情况(比如球队名带小写开头?不过通常队名首字母大写),可以微调正则模式,但这个方案已经覆盖了大部分常见场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:19:01