python案例怎么看这场比赛的进球总数?

wen python案例 1

本文目录导读:

python案例怎么看这场比赛的进球总数?

  1. 场景一:数据是字符串(如新闻标题或文本)
  2. 场景二:数据是字典列表(结构化数据)
  3. 场景三:数据在CSV文件或Excel中
  4. 场景四:数据是网页(需要爬虫)
  5. 总结:最常用的核心代码(一行搞定)

在Python中分析比赛进球总数,方法取决于数据格式,最常见的有三种情况,我分别给出代码案例:


数据是字符串(如新闻标题或文本)

假设数据是 "皇马 3:2 巴萨""Manchester United 2-0 Liverpool"

核心思路:用正则表达式提取比分,然后相加。

import re
def parse_score(text):
    """从文本中提取两个数字并相加"""
    # 匹配 数字:数字 或 数字-数字
    match = re.search(r'(\d+)\s*[-:]\s*(\d+)', text)
    if match:
        home = int(match.group(1))
        away = int(match.group(2))
        return home + away
    return 0
# 案例
match1 = "皇马 3:2 巴萨"
match2 = "Arsenal 1-0 Chelsea"
total = parse_score(match1) + parse_score(match2)
print(f"第一场进球: {parse_score(match1)}")
print(f"第二场进球: {parse_score(match2)}")
print(f"总进球数: {total}")
# 输出:
# 第一场进球: 5
# 第二场进球: 1
# 总进球数: 6

数据是字典列表(结构化数据)

这是最常见的数据库或API格式,每个比赛是一个字典。

# 模拟一场赛事的数据
matches = [
    {"team_home": "曼联", "score_home": 2, "team_away": "利物浦", "score_away": 1},
    {"team_home": "曼城", "score_home": 3, "team_away": "切尔西", "score_away": 3},
    {"team_home": "阿森纳", "score_home": 0, "team_away": "热刺", "score_away": 2},
]
# 方法1:循环累加
total_goals = 0
for match in matches:
    total_goals += match["score_home"]
    total_goals += match["score_away"]
print(f"所有比赛总进球数: {total_goals}")
# 方法2:列表推导式(更Pythonic)
total_goals = sum(m["score_home"] + m["score_away"] for m in matches)
print(f"用sum+推导式计算: {total_goals}")
# 输出:
# 所有比赛总进球数: 11
# 用sum+推导式计算: 11

数据在CSV文件或Excel中

假设有一个 matches.csv 文件,列名为 home_goals, away_goals

import pandas as pd
# 读取CSV文件
df = pd.read_csv("matches.csv")
# 查看前几行
print(df.head())
# 计算总进球(方法1:用pandas)
total_goals = df["home_goals"].sum() + df["away_goals"].sum()
print(f"总进球数: {total_goals}")
# 方法2:创建新列然后求和
df["total_goals"] = df["home_goals"] + df["away_goals"]
print(f"每场比赛进球: {df['total_goals'].tolist()}")
print(f"总进球数: {df['total_goals'].sum()}")

数据是网页(需要爬虫)

如果数据在网上,可以用 requests + BeautifulSoup 抓取,然后逻辑同场景二。

import requests
from bs4 import BeautifulSoup
# 示例:抓取某比分网站(此处为伪代码,需要真实URL)
# url = "https://example.com/scores"
# response = requests.get(url)
# soup = BeautifulSoup(response.text, "html.parser")
# 假设你已经提取到了比分列表
scores = ["2-1", "0-0", "3-3"]
total = 0
for score in scores:
    a, b = score.split("-")
    total += int(a) + int(b)
print(f"总进球: {total}")

最常用的核心代码(一行搞定)

如果你有一个包含所有比分的DataFrame或列表,这是最核心的操作:

# 如果是pandas DataFrame,列名为 home_goals 和 away_goals
total = (df["home_goals"] + df["away_goals"]).sum()
# 如果是一个嵌套列表 [[主队进球, 客队进球], ...]
total = sum(a + b for a, b in scores_list)

告诉我你的数据具体长什么样(截图或粘贴几行),我可以帮你写精确的代码。 例如是列表、字典、还是文本?

抱歉,评论功能暂时关闭!