python案例统计脚后跟传球成功几次?

wen python案例 3

Python 案例:统计脚后跟传球成功次数

下面我用一个完整的案例来演示如何统计足球比赛中"脚后跟传球"的成功次数。

python案例统计脚后跟传球成功几次?

场景说明

  • 每次传球有:传球方式(脚后跟/普通)、结果(成功/失败)
  • 我们需要统计脚后跟传球且成功的次数

基础字典/列表统计

# 模拟比赛传球数据
passes = [
    {"type": "脚后跟", "result": "成功"},
    {"type": "普通",   "result": "成功"},
    {"type": "脚后跟", "result": "失败"},
    {"type": "脚后跟", "result": "成功"},
    {"type": "普通",   "result": "失败"},
    {"type": "脚后跟", "result": "成功"},
]
# 统计脚后跟传球成功次数
count = 0
for p in passes:
    if p["type"] == "脚后跟" and p["result"] == "成功":
        count += 1
print(f"脚后跟传球成功次数:{count}")   # 输出:3

使用 sum() 一行流

count = sum(1 for p in passes
            if p["type"] == "脚后跟" and p["result"] == "成功")
print(count)   # 3

使用 collections.Counter(推荐)

适合同时统计多种传球方式的成功/失败情况:

from collections import Counter
# 只统计"成功"的传球,按类型分组
counter = Counter(
    p["type"] for p in passes if p["result"] == "成功"
)
print(counter)                      # Counter({'脚后跟': 3, '普通': 1})
print("脚后跟成功次数:", counter["脚后跟"])   # 3

用 Pandas 处理真实数据(实战推荐)

真实比赛数据通常有几百上千条,用 Pandas 更方便:

import pandas as pd
df = pd.DataFrame(passes)
print(df)
# 筛选:脚后跟 + 成功
heel_success = df[(df["type"] == "脚后跟") & (df["result"] == "成功")]
print("脚后跟传球成功次数:", len(heel_success))   # 3
# 更全面:统计每种传球方式的成功/失败分布
print(df.groupby(["type", "result"]).size())

输出:

type   result
普通    失败      1
       成功      1
脚后跟   失败      1
       成功      3

封装成函数(工程化)

def count_heel_success(passes):
    """统计脚后跟传球成功次数"""
    return sum(
        1 for p in passes
        if p.get("type") == "脚后跟" and p.get("result") == "成功"
    )
print(count_heel_success(passes))   # 3

关键点小结

方法 适用场景
for 循环 教学入门、逻辑清晰
sum() + 生成器 一行简洁、避免中间变量
Counter 需要同时统计多个类别
Pandas 数据量大、需要分组分析

如果你有真实的比赛数据(CSV / Excel / API 格式),告诉我字段名,我可以帮你改成直接读取文件统计的版本 👍

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