实用脚本统计球员评分最高者是谁?

wen 实用脚本 1

本文目录导读:

实用脚本统计球员评分最高者是谁?

  1. 场景一:数据在 Excel/CSV 文件中(使用 Python + Pandas)
  2. 场景二:数据在 Python 字典/列表中(硬编码)
  3. 场景三:纯 Bash/命令行(处理文本文件)
  4. 如何选择?

这是一个非常实用且常见的需求,由于你没有指定具体的数据来源(如网页、Excel、CSV)或具体的运动(篮球、足球),我为你提供两个最常用场景的通用脚本逻辑可直接运行的代码

你可以根据你的数据格式,选择对应的脚本。


数据在 Excel/CSV 文件中(使用 Python + Pandas)

这是最推荐的场景,假设你的文件名为 players.csv,里面有 Player(球员)和 Rating(评分)两列。

import pandas as pd
def find_highest_rated_player(file_path):
    """从 CSV 或 Excel 文件中找出评分最高的球员"""
    try:
        # 自动识别文件类型
        if file_path.endswith('.csv'):
            df = pd.read_csv(file_path)
        elif file_path.endswith('.xlsx'):
            df = pd.read_excel(file_path)
        else:
            print("不支持的文件格式,请使用 .csv 或 .xlsx")
            return
        # 检查必要列是否存在
        if 'Player' not in df.columns or 'Rating' not in df.columns:
            print("错误:文件必须包含 'Player' 和 'Rating' 列")
            return
        # 转换成数值型(防止有'9.5分'之类带文字的多余内容)
        df['Rating'] = pd.to_numeric(df['Rating'], errors='coerce')
        # 删除空行
        df = df.dropna(subset=['Rating', 'Player'])
        if df.empty:
            print("没有有效数据")
            return
        # 找到最高分
        max_index = df['Rating'].idxmax()
        best_player_row = df.loc[max_index]
        print(f"🏆 评分最高的球员是:{best_player_row['Player']}")
        print(f"⭐ 评分:{best_player_row['Rating']}")
    except FileNotFoundError:
        print(f"错误:找不到文件 {file_path}")
# --- 使用示例 ---
if __name__ == "__main__":
    find_highest_rated_player("players.csv")  # 换成你的文件路径

数据在 Python 字典/列表中(硬编码)

如果你只有一小段比赛数据,想快速在代码里运行,不依赖文件。

def find_top_player(player_stats):
    """从字典列表中找出评分最高者"""
    if not player_stats:
        print("数据为空")
        return None
    # 使用 max 函数,key 指定比较的值
    top_player = max(player_stats, key=lambda x: x['rating'])
    return top_player
# --- 示例数据 ---
players = [
    {"name": "勒布朗·詹姆斯", "rating": 9.8},
    {"name": "斯蒂芬·库里", "rating": 9.5},
    {"name": "凯文·杜兰特", "rating": 9.6},
    {"name": "尼古拉·约基奇", "rating": 9.9},
    {"name": "扬尼斯·阿德托昆博", "rating": 9.7},
]
# --- 输出结果 ---
best = find_top_player(players)
if best:
    print(f"🎯 全场最佳:{best['name']}")
    print(f"🌟 评分:{best['rating']}")

纯 Bash/命令行(处理文本文件)

如果文件是 .txt 且格式为 球员名,评分 每行一个,使用 awksort 命令最快。

# 假设文件格式为:詹姆斯,9.8 (每行一个)
# 使用 sort 按第二个字段(逗号分隔)按数值降序排列,取第一行
sort -t',' -k2 -nr players.txt | head -1

如何选择?

  1. 如果你会双击运行 Python 脚本 → 用场景一(文件处理)。
  2. 如果你只是测试一段逻辑 → 用场景二(硬编码)。
  3. 如果你在 Mac/Linux 终端里,文件很小 → 用场景三(Shell命令)。

如果你能告诉我你的数据长什么样(比如是网页表格,还是手机里的记录),我可以给你更精准的抓取脚本(比如用 Python 的 BeautifulSoup 解析网页)。

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