You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python不导入Pandas如何按分数对玩家数据排序

不导入Pandas按分数排序玩家数据实现

现有代码存在两个影响排序的问题:

  • 读取到的分数为字符串类型,直接排序会按字符规则比对,导致排序结果错误
  • 遍历字典时默认按插入顺序输出,未执行排序逻辑

直接使用Python内置的sorted()函数即可完成排序,无需引入任何第三方依赖,修改后的可运行代码如下:

player = {}

def loadData():
    fileHandle = open('Leaderboard.csv', 'r')
    player.clear()
    for line in fileHandle:
        line = line.strip()
        if not line:
            continue
        data = line.split(",")
        playerName = data[0].strip()
        # 分数转整数类型,适配数值排序逻辑
        playerScore = int(data[1].strip())
        playerPattern = data[2].strip()
        playerData = {
            "Score": playerScore,
            "Pattern": playerPattern
        }
        player[playerName] = playerData
    fileHandle.close()

def leaderboard():
    print("=========================================")
    print("LEADERBOARD")
    # 按分数从高到低排序
    sorted_player_list = sorted(player.items(), key=lambda item: item[1]["Score"], reverse=True)
    for name, info in sorted_player_list:
        print(f"{name} - {info['Score']} - {info['Pattern']}")
    print("\n")

# 功能测试
loadData()
leaderboard()

关键逻辑说明

  • 读取数据阶段增加了空行过滤、字段首尾空格去除逻辑,兼容CSV文件中字段带多余空格的格式
  • sorted()为Python原生内置函数,无需额外导入:参数key=lambda item: item[1]["Score"]指定排序维度为玩家的分数字段,reverse=True指定排序规则为分数从高到低
  • 运行后输出顺序完全匹配预期:50分的Joshua排在首位,其次是25分的Patricia,最后是10分的Liam

内容的提问来源于stack exchange,提问作者yejin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 20:30:45