本文目录导读:

我来帮你写一个Python案例来统计哪支队伍的失误次数更少,这里提供几种不同的实现方式:
基础版(字典存储)
def compare_mistakes(teams_data):
"""
比较各队的失误次数
teams_data: 字典,格式为 {球队名: 失误次数}
"""
if not teams_data:
return "没有数据"
# 找出失误最少的球队
min_mistakes = min(teams_data.values())
best_teams = [team for team, mistakes in teams_data.items()
if mistakes == min_mistakes]
print("各队失误情况:")
for team, mistakes in sorted(teams_data.items(), key=lambda x: x[1]):
print(f"{team}: {mistakes}次")
print(f"\n失误最少的球队: {'、'.join(best_teams)} ({min_mistakes}次)")
return best_teams
# 示例使用
teams = {
"火箭队": 15,
"勇士队": 8,
"湖人队": 12,
"凯尔特人队": 15,
"公牛队": 5
}
compare_mistakes(teams)
进阶版(包含多场比赛数据)
def compare_multi_game_mistakes(game_data):
"""
统计多场比赛的失误总量
game_data: 字典,格式为 {球队名: [每场失误列表]}
"""
# 计算每队总失误
total_mistakes = {}
for team, mistakes_list in game_data.items():
total = sum(mistakes_list)
avg = total / len(mistakes_list)
total_mistakes[team] = {
'total': total,
'avg': avg,
'games': len(mistakes_list)
}
# 按总失误排序
sorted_teams = sorted(total_mistakes.items(), key=lambda x: x[1]['total'])
print("球队失误统计:")
print("-" * 40)
print(f"{'球队':<10} {'总失误':<8} {'场均':<8} {'场次'}")
print("-" * 40)
for team, stats in sorted_teams:
print(f"{team:<10} {stats['total']:<8} {stats['avg']:.2f} {stats['games']}")
# 找出最少失误的球队
min_team = sorted_teams[0][0]
min_mistakes = sorted_teams[0][1]['total']
print(f"\n🏆 失误最少的球队: {min_team} (总失误: {min_mistakes}次)")
return min_team
# 示例数据:某赛季各队前5场比赛的失误
game_data = {
"勇士队": [8, 12, 7, 9, 10],
"湖人队": [15, 11, 13, 8, 12],
"火箭队": [20, 18, 16, 19, 17],
"凯尔特人队": [14, 12, 15, 13, 11],
}
compare_multi_game_mistakes(game_data)
面向对象版本
class Team:
def __init__(self, name):
self.name = name
self.mistakes = []
def add_game_mistakes(self, mistakes):
self.mistakes.append(mistakes)
def total_mistakes(self):
return sum(self.mistakes)
def avg_mistakes(self):
if not self.mistakes:
return 0
return self.total_mistakes() / len(self.mistakes)
def __str__(self):
return f"{self.name} (总失误: {self.total_mistakes()}, 场均: {self.avg_mistakes():.2f})"
class MistakeStatistician:
def __init__(self):
self.teams = {}
def add_team(self, team_name, mistakes_list):
if team_name not in self.teams:
self.teams[team_name] = Team(team_name)
for mistakes in mistakes_list:
self.teams[team_name].add_game_mistakes(mistakes)
def find_best_team(self):
if not self.teams:
return None
best_team = min(self.teams.values(), key=lambda t: t.total_mistakes())
return best_team
def display_comparison(self):
print("🏀 球队失误对比表")
print("=" * 40)
sorted_teams = sorted(self.teams.values(), key=lambda t: t.total_mistakes())
for team in sorted_teams:
print(f"• {team}")
best = self.find_best_team()
print(f"\n✅ 失误最少的队伍: {best.name}")
print(f" 总失误: {best.total_mistakes()}次 | 场均: {best.avg_mistakes():.2f}次")
# 使用示例
stat = MistakeStatistician()
# 添加各队数据
stat.add_team("勇士", [8, 12, 7, 9])
stat.add_team("湖人", [15, 11, 13, 8])
stat.add_team("火箭", [20, 18, 16, 19])
stat.add_team("热火", [10, 12, 8, 11])
stat.display_comparison()
带可视化(简单图表)
import matplotlib.pyplot as plt
def visualize_mistakes(teams_data):
"""
可视化比较各队失误
"""
teams = list(teams_data.keys())
mistakes = list(teams_data.values())
plt.figure(figsize=(10, 6))
bars = plt.bar(teams, mistakes, color=['#FF6B6B' if m != min(mistakes) else '#4ECDC4'
for m in mistakes])
# 添加数字标签
for bar, mistake in zip(bars, mistakes):
plt.text(bar.get_x() + bar.get_width()/2, bar.get_height() + 0.5,
str(mistake), ha='center', va='bottom')
plt.title('各队失误次数对比', fontsize=16)
plt.xlabel('球队', fontsize=12)
plt.ylabel('失误次数', fontsize=12)
plt.ylim(0, max(mistakes) * 1.2)
# 用颜色标注最少失误的球队
least_labels = []
min_value = min(mistakes)
for i, (team, value) in enumerate(zip(teams, mistakes)):
if value == min_value:
least_labels.append(team)
if least_labels:
plt.text(0.02, 0.98, f'🏆 最佳: {", ".join(least_labels)} ({min_value}次)',
transform=plt.gca().transAxes, fontsize=12,
bbox=dict(boxstyle='round', facecolor='wheat', alpha=0.5))
plt.grid(axis='y', alpha=0.3)
plt.tight_layout()
plt.show()
# 使用示例
teams_data = {
"勇士队": 8,
"湖人队": 12,
"火箭队": 15,
"热火队": 5,
"凯尔特人队": 10
}
compare_mistakes(teams_data)
# visualize_mistakes(teams_data) # 取消注释可查看图表
这些代码提供了不同的解决方案:
- 基础版:简单直接,适合快速比较
- 进阶版:包含多场比赛的数据统计
- 面向对象版:更规范的代码结构,便于扩展
- 可视化版:图形化展示结果
运行这些代码时会发现,它会自动找出失误最少的球队,并显示详细的比较信息,你可以根据自己的需求选择合适的版本使用。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播