Python案例:统计失误次数,哪队更少?
下面我用一个完整的案例来演示如何统计两支队伍的失误次数,并判断哪队失误更少。

案例背景
假设我们有两支篮球队(A队和B队)的比赛失误记录,需要统计各自的失误总数,然后比较哪队失误更少。
完整代码实现
# ========== 方法一:基础版 ==========
def compare_turnovers(team_a, team_b):
"""统计两队失误次数并比较"""
total_a = sum(team_a)
total_b = sum(team_b)
print(f"A队各场失误: {team_a}")
print(f"B队各场失误: {team_b}")
print(f"A队总失误: {total_a}")
print(f"B队总失误: {total_b}")
print("-" * 30)
if total_a < total_b:
print(f"✅ A队失误更少(少 {total_b - total_a} 次)")
elif total_b < total_a:
print(f"✅ B队失误更少(少 {total_a - total_b} 次)")
else:
print("🤝 两队失误次数相同")
# 测试数据:每场比赛的失误次数
team_a = [12, 8, 15, 10, 7]
team_b = [10, 14, 9, 11, 13]
compare_turnovers(team_a, team_b)
输出结果:
A队各场失误: [12, 8, 15, 10, 7]
B队各场失误: [10, 14, 9, 11, 13]
A队总失误: 52
B队总失误: 57
------------------------------
✅ A队失误更少(少 5 次)
进阶版:使用字典和函数式编程
from functools import reduce
def analyze_turnovers(data):
"""
data: {'队名': [失误列表], ...}
返回统计结果
"""
stats = {}
for team, turnovers in data.items():
stats[team] = {
'总失误': sum(turnovers),
'平均失误': round(sum(turnovers) / len(turnovers), 2),
'最多失误': max(turnovers),
'最少失误': min(turnovers),
}
# 找出失误最少的队
min_team = min(stats, key=lambda t: stats[t]['总失误'])
return stats, min_team
# 数据
data = {
'A队': [12, 8, 15, 10, 7],
'B队': [10, 14, 9, 11, 13],
'C队': [6, 9, 8, 7, 10],
}
stats, winner = analyze_turnovers(data)
# 打印统计表
print(f"{'队伍':<6}{'总失误':<8}{'平均失误':<10}{'最多':<6}{'最少':<6}")
print("-" * 40)
for team, s in stats.items():
print(f"{team:<6}{s['总失误']:<8}{s['平均失误']:<10}{s['最多失误']:<6}{s['最少失误']:<6}")
print(f"\n🏆 失误最少的队伍是:{winner}(共 {stats[winner]['总失误']} 次)")
输出结果:
队伍 总失误 平均失误 最多 最少
----------------------------------------
A队 52 10.4 15 7
B队 57 11.4 14 9
C队 40 8.0 10 6
🏆 失误最少的队伍是:C队(共 40 次)
关键知识点
| 知识点 | 说明 |
|---|---|
sum() |
求列表元素总和 |
min(key=...) |
按指定规则找最小值 |
lambda |
匿名函数,用于排序/查找规则 |
| 字典遍历 | 存储多队数据,结构清晰 |
输入动态数据版(可交互)
def input_team_data():
"""让用户输入每队的失误数据"""
data = {}
n = int(input("请输入队伍数量: "))
for i in range(n):
name = input(f"第{i+1}队名称: ")
turnovers = list(map(int, input(f"{name}各场失误(空格分隔): ").split()))
data[name] = turnovers
return data
data = input_team_data()
stats, winner = analyze_turnovers(data)
print(f"\n失误最少的队伍:{winner}")
统计"哪队失误更少"的核心逻辑:
- 收集数据 → 用列表/字典存储每队失误
- 汇总计算 → 用
sum()求总数 - 比较大小 → 用
min()或if-elif找最少 - 输出结论 → 格式化打印结果
如果你有具体的场景(比如足球、考试错题、代码报错等),告诉我,我可以针对性改写这个案例 😊
版权声明:足球直播
足球直播
足球直播
足球直播
足球直播
中超直播
中超直播
中超直播
中超直播
中超直播
英超直播
英超直播
英超直播
英超直播
英超直播
德甲直播
德甲直播
德甲直播
德甲直播
德甲直播
西甲直播
西甲直播
西甲直播
西甲直播
西甲直播
意甲直播
意甲直播
意甲直播
意甲直播
意甲直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
足球直播
足球直播
足球直播
足球直播
足球直播
中超直播
中超直播
中超直播
中超直播
中超直播
英超直播
英超直播
英超直播
英超直播
英超直播
德甲直播
德甲直播
德甲直播
德甲直播
德甲直播
西甲直播
西甲直播
西甲直播
西甲直播
西甲直播
意甲直播
意甲直播
意甲直播
意甲直播
意甲直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
足球直播
足球直播
足球直播
足球直播
足球直播
中超直播
中超直播
中超直播
中超直播
中超直播
英超直播
英超直播
英超直播
英超直播
英超直播
德甲直播
德甲直播
德甲直播
德甲直播
德甲直播
西甲直播
西甲直播
西甲直播
西甲直播
西甲直播
意甲直播
意甲直播
意甲直播
意甲直播
意甲直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播