本文目录导读:

下面提供一个简单的Python案例,用于统计两个或多个队伍的失误次数,并判断哪一队失误更少。
场景设定
有两支队伍:A队 和 B队。
我们有一份包含每次失误的记录,每条记录格式如:("A", 1) 表示A队第1次失误。
代码示例
# 模拟数据:每项为 (队伍名, 失误序号)
mistakes = [
("A", 1), ("B", 1), ("B", 2), ("A", 2),
("B", 3), ("A", 3), ("B", 4), ("A", 4),
("A", 5), ("B", 5), ("B", 6), ("A", 6),
]
# 统计每队失误次数
from collections import Counter
mistake_count = Counter(team for team, _ in mistakes)
print("各队失误次数:")
for team, count in mistake_count.items():
print(f" {team} 队:{count} 次")
# 找出失误最少的队伍
min_team = min(mistake_count, key=mistake_count.get)
min_count = mistake_count[min_team]
print(f"\n失误最少的队伍是:{min_team} 队,共 {min_count} 次失误")
输出示例
各队失误次数:
A 队:6 次
B 队:6 次
失误最少的队伍是:A 队,共 6 次失误
(这里A、B打平,所以实际上是A和B都最少。)
如果希望找“唯一最少”或处理平局
min_count = min(mistake_count.values())
min_teams = [team for team, cnt in mistake_count.items() if cnt == min_count]
if len(min_teams) == 1:
print(f"失误最少的队伍:{min_teams[0]} 队({min_count}次)")
else:
print(f"以下队伍失误最少,均为 {min_count} 次:")
for team in min_teams:
print(f" {team} 队")
更通用写法(支持任意多个队伍)
def which_team_has_less_mistakes(mistake_records):
from collections import Counter
cnt = Counter(team for team, _ in mistake_records)
min_val = min(cnt.values())
return [team for team, c in cnt.items() if c == min_val], min_val
# 示例
best_teams, min_mistakes = which_team_has_less_mistakes(mistakes)
print(f"失误最少的队伍:{best_teams},共 {min_mistakes} 次")
- 用
Counter快速统计各队失误次数 - 用
min()找到最小值 - 可以扩展为多个队伍、其他统计维度(如按节、按比赛阶段)
如果有更复杂的数据结构(例如失误包含时间、位置等),可以再根据需求调整统计逻辑。