我来帮你写一个统计“克鲁伊夫转身”次数的Python程序,不过我理解你的意思可能是统计某个视频或比赛中该动作的出现次数。

以下是一个示例,假设我们有一些关于足球动作的数据:
def count_cruyff_turn(match_events):
"""
统计比赛中克鲁伊夫转身的次数
Args:
match_events: 包含比赛事件的列表,每个事件是一个字典
"""
cruyff_turn_count = 0
for event in match_events:
# 检查事件类型是否为克鲁伊夫转身
if event.get('action') == 'cruyff_turn':
cruyff_turn_count += 1
print(f"第{cruyff_turn_count}次克鲁伊夫转身:")
print(f" 球员: {event.get('player', '未知')}")
print(f" 时间: {event.get('minute', 0)}分钟")
print(f" 位置: {event.get('position', '未知')}")
print("-" * 30)
return cruyff_turn_count
# 示例数据
match_events = [
{'action': 'pass', 'player': '梅西', 'minute': 10, 'position': '中前场'},
{'action': 'cruyff_turn', 'player': '梅西', 'minute': 12, 'position': '右路'},
{'action': 'shot', 'player': 'C罗', 'minute': 15, 'position': '禁区外'},
{'action': 'cruyff_turn', 'player': '内马尔', 'minute': 20, 'position': '中场'},
{'action': 'pass', 'player': '德布劳内', 'minute': 25, 'position': '前场'},
{'action': 'cruyff_turn', 'player': '梅西', 'minute': 30, 'position': '左路'},
{'action': 'tackle', 'player': '范迪克', 'minute': 35, 'position': '后场'},
]
# 统计并输出结果
total_cruyff_turns = count_cruyff_turn(match_events)
print(f"\n✅ 全场克鲁伊夫转身总次数: {total_cruyff_turns} 次")
# 如果你只想针对某个球员
target_player = '梅西'
player_turns = sum(1 for event in match_events
if event.get('action') == 'cruyff_turn'
and event.get('player') == target_player)
print(f"⚽ {target_player} 的克鲁伊夫转身: {player_turns} 次")
更复杂的版本(包含实时分析):
import re
from collections import Counter
def analyze_cruyff_turns(commentary_text):
"""
从比赛解说文本中分析克鲁伊夫转身
"""
# 匹配克鲁伊夫转身的描述模式
patterns = [
r'克鲁伊夫转身',
r'cruyff turn',
r'sell the dummy',
r'feint left go right'
]
# 找到所有匹配项
matches = []
for pattern in patterns:
matches.extend(re.finditer(pattern, commentary_text, re.IGNORECASE))
return len(matches)
# 示例视频评论
commentary = """
第12分钟,梅西在右路面对防守球员,来了一记漂亮的克鲁伊夫转身!
第30分钟,内马尔在禁区前沿用了克鲁伊夫转身,成功过人。
下半场开始,梅西又一次克鲁伊夫转身,可惜传球被拦截。
"""
turns = analyze_cruyff_turns(commentary)
print(f"从解说文本中统计出 {turns} 次克鲁伊夫转身")
如果需要从视频中检测(简化示例):
# 假设我们有视频分析数据(JSON格式)
video_data = [
{"frame": 120, "action": "cruyff_turn", "confidence": 0.95, "player": "Player_10"},
{"frame": 245, "action": "pass", "confidence": 0.98, "player": "Player_7"},
{"frame": 360, "action": "cruyff_turn", "confidence": 0.87, "player": "Player_10"},
{"frame": 480, "action": "shot", "confidence": 0.99, "player": "Player_9"}
]
# 统计动作
action_counts = Counter(event["action"] for event in video_data)
cruyff_turns = [event for event in video_data if event["action"] == "cruyff_turn"]
print(f"视频中的动作分布: {dict(action_counts)}")
print(f"克鲁伊夫转身次数: {len(cruyff_turns)}")
print(f"平均置信度: {sum(e['confidence'] for e in cruyff_turns)/len(cruyff_turns):.2f}")
这些示例展示了不同场景下的统计方法,你可以根据实际需求选择合适的方式,如果你有具体的视频或数据,我可以帮你调整代码。