Python案例:统计失误次数哪队更少
下面用一个完整的案例来演示如何统计两队(或多个队伍)的失误次数,并找出失误更少的一方。

案例场景
假设有两支篮球队进行比赛,我们记录了每次失误(失误 = turnover)归属哪支队伍,现在要统计每队的失误次数。
# ============ 案例1:基础版 ============
# 记录每次失误属于哪支队伍
turnovers = ['A', 'A', 'B', 'A', 'B', 'B', 'A', 'B', 'B', 'A']
# 统计每队失误次数
count_a = turnovers.count('A')
count_b = turnovers.count('B')
print(f"A队失误次数: {count_a}")
print(f"B队失误次数: {count_b}")
if count_a < count_b:
print(f"失误更少的是 A队(少 {count_b - count_a} 次)")
elif count_b < count_a:
print(f"失误更少的是 B队(少 {count_a - count_b} 次)")
else:
print("两队失误次数相同")
输出:
A队失误次数: 5
B队失误次数: 4
失误更少的是 B队(少 1 次)
案例2:使用字典统计(更通用)
适合队伍数量多、名字不固定的情况:
turnovers = ['湖人', '勇士', '湖人', '湖人', '勇士', '勇士', '湖人', '勇士', '勇士', '湖人']
# 统计每队失误次数
stats = {}
for team in turnovers:
stats[team] = stats.get(team, 0) + 1
print("各队失误统计:", stats)
# 找出失误最少的队伍
min_team = min(stats, key=stats.get)
min_count = stats[min_team]
print(f"失误最少的是 {min_team},共 {min_count} 次")
输出:
各队失误统计: {'湖人': 5, '勇士': 5}
失误最少的是 湖人,共 5 次
案例3:使用 collections.Counter(推荐写法)
from collections import Counter
turnovers = ['A', 'A', 'B', 'A', 'B', 'B', 'A', 'B', 'B', 'A']
counter = Counter(turnovers)
print(counter) # Counter({'A': 5, 'B': 4})
# 找出失误最少的队伍
min_team, min_count = counter.most_common()[-1]
print(f"失误最少:{min_team}({min_count} 次)")
# 找出所有并列最少的队伍
min_count = min(counter.values())
teams_with_min = [team for team, c in counter.items() if c == min_count]
print(f"失误最少的队伍:{teams_with_min},各 {min_count} 次")
输出:
Counter({'A': 5, 'B': 4})
失误最少:B(4 次)
失误最少的队伍:['B'],各 4 次
案例4:从 CSV 文件读取真实数据
假设 game_stats.csv 内容如下:
team,turnover
A,1
A,1
B,1
A,1
B,1
B,1
A,1
B,1
B,1
A,1
代码:
import csv
from collections import Counter
with open('game_stats.csv', encoding='utf-8') as f:
reader = csv.DictReader(f)
teams = [row['team'] for row in reader if row['turnover'] == '1']
counter = Counter(teams)
print("失误统计:", counter)
min_count = min(counter.values())
winners = [t for t, c in counter.items() if c == min_count]
if len(winners) == 1:
print(f"失误更少的队伍是:{winners[0]}({min_count} 次)")
else:
print(f"失误并列最少:{', '.join(winners)},各 {min_count} 次")
案例5:进阶 —— 用 Pandas 处理比赛数据
import pandas as pd
data = {
'team': ['A', 'A', 'B', 'A', 'B', 'B', 'A', 'B', 'B', 'A'],
'turnover': [1] * 10
}
df = pd.DataFrame(data)
# 按队伍分组统计
stats = df.groupby('team')['turnover'].sum().sort_values()
print(stats)
fewest = stats.index[0]
print(f"失误更少的是 {fewest},共 {stats[fewest]} 次")
输出:
team
B 4
A 5
Name: turnover, dtype: int64
失误更少的是 B,共 4 次
| 方法 | 适用场景 |
|---|---|
list.count() |
只有两队,最简单 |
dict / Counter |
任意多队,推荐 Counter |
csv 模块 |
从文件读数据 |
pandas |
数据量大、需要分析 |
核心思路:
- 遍历失误记录 → 累计每队次数
- 用
min()或most_common()[-1]找最小值 - 考虑并列情况(用列表推导式筛出所有最少的队伍)
如果你有具体的比赛数据结构(比如比分表、事件表),可以发给我,我帮你写出针对性的统计代码。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播