本文目录导读:

我来给你写一个统计球员评分最高者的Python案例,包含几种不同实现方式:
基础字典方式
# 球员评分数据
player_scores = {
'梅西': 9.8,
'C罗': 9.2,
'内马尔': 8.5,
'姆巴佩': 9.5,
'哈兰德': 8.9,
'德布劳内': 9.7
}
# 方法1:使用max函数+字典
highest_player = max(player_scores, key=player_scores.get)
highest_score = player_scores[highest_player]
print(f"最高分球员: {highest_player}")
print(f"最高评分: {highest_score}")
列表字典组合
# 更复杂的球员数据
players = [
{'name': '梅西', 'team': '巴萨', 'position': '前锋', 'scores': [9.5, 9.8, 9.3, 9.7, 9.6]},
{'name': 'C罗', 'team': '尤文', 'position': '前锋', 'scores': [9.2, 9.4, 9.0, 9.3, 9.1]},
{'name': '内马尔', 'team': '巴黎', 'position': '前锋', 'scores': [8.8, 9.1, 8.5, 9.0, 8.7]},
{'name': '姆巴佩', 'team': '巴黎', 'position': '前锋', 'scores': [9.6, 9.8, 9.4, 9.7, 9.5]},
{'name': '德布劳内', 'team': '曼城', 'position': '中场', 'scores': [9.7, 9.5, 9.6, 9.4, 9.8]}
]
# 计算每个球员的平均分
print("各球员平均评分:")
player_averages = {}
for player in players:
avg_score = sum(player['scores']) / len(player['scores'])
player_averages[player['name']] = avg_score
print(f"{player['name']}: {avg_score:.2f}")
# 找出最高平均分球员
best_player = max(player_averages, key=player_averages.get)
print(f"\n🏆 平均评分最高球员: {best_player}")
print(f"最高平均评分: {player_averages[best_player]:.2f}")
使用Pandas(数据分析库)
import pandas as pd
# 创建DataFrame
data = {
'球员': ['梅西', 'C罗', '内马尔', '姆巴佩', '哈兰德', '德布劳内'],
'球队': ['巴黎', '利雅得', '巴黎', '巴黎', '曼城', '曼城'],
'位置': ['前锋', '前锋', '前锋', '前锋', '前锋', '中场'],
'评分': [9.8, 9.2, 8.5, 9.5, 8.9, 9.7],
'进球数': [32, 28, 20, 27, 35, 15],
'助攻数': [12, 8, 15, 9, 8, 20]
}
df = pd.DataFrame(data)
print("球员数据:")
print(df)
# 找出评分最高的球员
highest_scored = df.loc[df['评分'].idxmax()]
print("\n评分最高球员:")
print(highest_scored)
# 按球队分组查看平均评分
print("\n各球队平均评分:")
print(df.groupby('球队')['评分'].mean())
面向对象方式
class Player:
def __init__(self, name, position, score):
self.name = name
self.position = position
self.score = score
def __str__(self):
return f"{self.name}({self.position}): {self.score}分"
def find_highest_score_player(players):
"""找出评分最高的球员"""
if not players:
return None
return max(players, key=lambda p: p.score)
# 创建球员对象
players = [
Player("梅西", "前锋", 9.8),
Player("C罗", "前锋", 9.2),
Player("内马尔", "前锋", 8.5),
Player("姆巴佩", "前锋", 9.5),
Player("哈兰德", "前锋", 8.9),
Player("德布劳内", "中场", 9.7),
Player("范戴克", "后卫", 9.1),
Player("诺伊尔", "门将", 9.0)
]
print("所有球员:")
for player in players:
print(f" {player}")
winner = find_highest_score_player(players)
if winner:
print(f"\n🏆 评分最高球员是: {winner}")
完整统计系统
import json
from collections import defaultdict
class PlayerStats:
def __init__(self):
self.players = []
def add_player(self, name, team, position, match_scores):
"""添加球员"""
player = {
'name': name,
'team': team,
'position': position,
'scores': match_scores
}
self.players.append(player)
def get_average_scores(self):
"""计算所有球员平均分"""
averages = {}
for player in self.players:
avg = sum(player['scores']) / len(player['scores'])
averages[player['name']] = avg
return averages
def find_best_player(self):
"""找出最高分球员"""
averages = self.get_average_scores()
best_name = max(averages, key=averages.get)
# 找到对应球员完整信息
for player in self.players:
if player['name'] == best_name:
return {
'name': player['name'],
'team': player['team'],
'position': player['position'],
'average_score': averages[best_name],
'matches_scores': player['scores']
}
return None
def team_ranking(self):
"""球队平均评分排名"""
team_scores = defaultdict(list)
for player in self.players:
avg = sum(player['scores']) / len(player['scores'])
team_scores[player['team']].append(avg)
team_avg = {team: sum(scores)/len(scores)
for team, scores in team_scores.items()}
return sorted(team_avg.items(), key=lambda x: x[1], reverse=True)
# 使用示例
stats = PlayerStats()
# 添加球员数据
stats.add_player("梅西", "巴黎", "前锋", [9.5, 9.8, 9.3, 9.7, 9.6])
stats.add_player("姆巴佩", "巴黎", "前锋", [9.6, 9.8, 9.4, 9.7, 9.5])
stats.add_player("哈兰德", "曼城", "前锋", [9.3, 9.5, 9.0, 9.4, 9.2])
stats.add_player("德布劳内", "曼城", "中场", [9.7, 9.5, 9.6, 9.4, 9.8])
stats.add_player("萨拉赫", "利物浦", "前锋", [9.0, 9.2, 8.8, 9.1, 9.3])
# 找出最佳球员
best = stats.find_best_player()
if best:
print("=" * 40)
print("🏆 评分最高球员详情:")
print("=" * 40)
print(f"球员: {best['name']}")
print(f"球队: {best['team']}")
print(f"位置: {best['position']}")
print(f"场次评分: {best['matches_scores']}")
print(f"平均评分: {best['average_score']:.2f}")
print("\n各球队实力排名:")
for i, (team, score) in enumerate(stats.team_ranking(), 1):
print(f"第{i}名: {team} (平均{score:.2f}分)")
运行示例输出
运行这些代码,你会看到类似以下的输出:
最高分球员: 梅西 最高评分: 9.8 各球员平均评分: 梅西: 9.58 C罗: 9.20 内马尔: 8.82 姆巴佩: 9.60 德布劳内: 9.60 🏆 平均评分最高球员: 姆巴佩 最高平均评分: 9.60
这些方法各有特点:
- 方法一:最简单直接
- 方法二:包含多个评分场次
- 方法三:适合复杂数据分析
- 方法四:面向对象,便于扩展
- 方法五:完整的统计系统
你可以根据实际需求选择合适的方法!
版权声明: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直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播