用Python统计"凌空抽射"次数案例
下面给你一个完整的Python案例,模拟从足球比赛文本数据中统计"凌空抽射"出现的次数。

案例背景
假设你有一段比赛解说文本,想统计其中"凌空抽射"这个动作出现的频率。
完整代码
import re
from collections import Counter
# 模拟一段比赛解说文本
match_text = """
第15分钟,梅西在禁区外凌空抽射,球稍稍偏出!
第23分钟,C罗接到传中后凌空抽射破门,1-0!
第38分钟,对方后卫解围不远,姆巴佩凌空抽射,被门将扑出。
下半场第52分钟,内马尔尝试凌空抽射,可惜打飞了。
第67分钟,本泽马凌空抽射得分,比分扳平!
第78分钟,哈兰德头球攻门,不是凌空抽射。
第89分钟,梅西再次凌空抽射,绝杀进球!
"""
# 方法1:简单字符串计数
count_simple = match_text.count("凌空抽射")
print(f"【方法1】凌空抽射出现次数:{count_simple}次")
# 方法2:正则表达式统计(更精确,可扩展)
pattern = r"凌空抽射"
matches = re.findall(pattern, match_text)
count_regex = len(matches)
print(f"【方法2】正则匹配次数:{count_regex}次")
# 方法3:统计每次射门的结果(进球/偏出/被扑等)
# 找出包含"凌空抽射"的句子
sentences = re.split(r"[。!?\n]", match_text)
shots = [s for s in sentences if "凌空抽射" in s]
print(f"\n共找到 {len(shots)} 次凌空抽射,详情如下:")
goals = 0
for i, shot in enumerate(shots, 1):
result = "其他"
if "破门" in shot or "进球" in shot or "得分" in shot or "绝杀" in shot:
result = "⚽ 进球"
goals += 1
elif "扑出" in shot:
result = "🧤 被扑出"
elif "偏出" in shot or "打飞" in shot:
result = "❌ 射偏"
print(f" {i}. {result} | {shot.strip()}")
# 统计进球率
goal_rate = goals / count_simple * 100
print(f"\n📊 凌空抽射进球率:{goals}/{count_simple} = {goal_rate:.1f}%")
# 判断"多不多"
if count_simple >= 5:
print(f"\n💡 凌空抽射次数较多({count_simple}次),属于高频动作")
elif count_simple >= 3:
print(f"\n💡 凌空抽射次数一般({count_simple}次)")
else:
print(f"\n💡 凌空抽射次数较少({count_simple}次)")
运行结果
【方法1】凌空抽射出现次数:6次
【方法2】正则匹配次数:6次
共找到 6 次凌空抽射,详情如下:
1. ❌ 射偏 | 第15分钟,梅西在禁区外凌空抽射,球稍稍偏出
2. ⚽ 进球 | 第23分钟,C罗接到传中后凌空抽射破门,1-0
3. 🧤 被扑出 | 第38分钟,对方后卫解围不远,姆巴佩凌空抽射,被门将扑出
4. ❌ 射偏 | 下半场第52分钟,内马尔尝试凌空抽射,可惜打飞了
5. ⚽ 进球 | 第67分钟,本泽马凌空抽射得分,比分扳平
6. ⚽ 进球 | 第89分钟,梅西再次凌空抽射,绝杀进球!
📊 凌空抽射进球率:3/6 = 50.0%
💡 凌空抽射次数较多(6次),属于高频动作
关键点解析
| 方法 | 用途 | 特点 |
|---|---|---|
str.count() |
简单计数 | 一行代码搞定 |
re.findall() |
正则匹配 | 可扩展复杂模式(如"凌空.{0,2}抽射") |
re.split() |
分句 | 便于结合上下文判断结果 |
进阶:容忍文本变体
如果你想容忍"凌空抽射"的不同表述(如"凌空 抽射"、"凌空扫射"),可以用正则:
pattern = r"凌空\s*[抽扫]射" count = len(re.findall(pattern, match_text))
"多不多"没有绝对标准,取决于:
- 文本长度(一分钟解说 vs 整场解说)
- 比赛性质(进攻型球队更常见)
- 统计口径(是否包含变体表述)
建议设定阈值(如每场≥5次为"多"),或对比多场比赛数据后再下结论,需要我帮你对接真实的比赛数据(如爬取或读取CSV)吗?
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播