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

Python 3.11如何按等级再按经验值对字典用户排序生成排行榜?

Python 3.11实现多级排序的排行榜逻辑

给定用户数据字典,需要实现先按等级(level)降序排序,等级相同时按经验值(xp)降序排序的逻辑,最终得到指定的排行榜列表,具体实现如下:

原始数据

users = {
   "level": {
      "Mark": 4,
      "Steve": 3,
      "Justin": 4,
      "Markus": 2
   }, "xp": {
      "Mark": 43,
      "Steve": 25,
      "Justin": 48,
      "Markus": 32
   }
}

实现代码

# 获取所有用户名称
user_names = users["level"].keys()

# 执行多级排序:先按level降序,再按xp降序
leaderboard = sorted(user_names, key=lambda name: (-users["level"][name], -users["xp"][name]))

print(leaderboard)
# 输出结果:['Justin', 'Mark', 'Steve', 'Markus']

逻辑说明

  • 利用Python内置的sorted()函数,通过lambda表达式定义排序依据(key):
    • 对level取负数,将默认的升序排序转为等级从高到低的排序;
    • 当等级相同时,对xp取负数,继续按经验值从高到低排序;
  • sorted()会优先比较元组的第一个元素(level的负数值),仅当第一个元素相等时,才会比较第二个元素(xp的负数值),完全匹配需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 09:42:12