Python案例统计失误次数哪队更少?

wen python案例 1

本文目录导读:

Python案例统计失误次数哪队更少?

  1. 场景设定
  2. 代码示例
  3. 输出示例
  4. 如果希望找“唯一最少”或处理平局
  5. 更通用写法(支持任意多个队伍)

下面提供一个简单的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() 找到最小值
  • 可以扩展为多个队伍、其他统计维度(如按节、按比赛阶段)

如果有更复杂的数据结构(例如失误包含时间、位置等),可以再根据需求调整统计逻辑。

抱歉,评论功能暂时关闭!