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

如何在值为列表的字典中获取评分最高的前2名员工详情

员工数据排序与顶级员工信息输出

问题背景

给定如下员工字典:

import datetime

emp_dict = {'Name1' : ['2','M','10',5,datetime.date(2002, 10, 10)],
            'Name2' : ['3','G','5',7,datetime.date(2003, 10, 10)],
            'Name3' : ['1','M','15',9,datetime.date(2004, 10, 10)],
            'Name4' : ['4','G','3',3,datetime.date(2010, 10, 10)],
            'Name5' : ['5','M','5',8,datetime.date(2006, 10, 10)]}

字典中每个键为员工姓名,对应值是包含多类型数据的列表,各索引对应的字段定义:

Index 0 - ID
Index 1 - 性别(Gender)
Index 2 - 部门(Department)
Index 3 - 评分(Rating)
Index 4 - 入职日期(DoJ)

需求

按评分(Rating)从高到低排序员工数据,输出评分最高的前2名员工的详细信息,格式需匹配如下期望输出:

Name3

ID         : 1
Gender     : M
Department : 15
Rating     : 9
DoJ        : (2004/10/10)

Name5

ID         : 5
Gender     : M
Department : 5
Rating     : 8
DoJ        : (2006/10/10)

解决方案

使用sorted()函数结合自定义排序规则实现,代码如下:

import datetime

emp_dict = {'Name1' : ['2','M','10',5,datetime.date(2002, 10, 10)],
            'Name2' : ['3','G','5',7,datetime.date(2003, 10, 10)],
            'Name3' : ['1','M','15',9,datetime.date(2004, 10, 10)],
            'Name4' : ['4','G','3',3,datetime.date(2010, 10, 10)],
            'Name5' : ['5','M','5',8,datetime.date(2006, 10, 10)]}

# 按评分降序排序,取前2名员工
sorted_employees = sorted(emp_dict.items(), key=lambda x: x[1][3], reverse=True)[:2]

# 格式化输出员工信息
for name, info in sorted_employees:
    print(name)
    print()
    print(f"ID         : {info[0]}")
    print(f"Gender     : {info[1]}")
    print(f"Department : {info[2]}")
    print(f"Rating     : {info[3]}")
    # 将日期格式转为YYYY/MM/DD并包裹括号
    print(f"DoJ        : ({info[4].strftime('%Y/%m/%d')})")
    print()

代码说明

  1. 排序逻辑:sorted()函数通过key=lambda x: x[1][3]指定以员工信息列表的第4个元素(索引3)即评分为排序依据,reverse=True实现降序排列,切片[:2]筛选出前2名员工。
  2. 格式化输出:遍历排序后的员工数据,按指定格式打印姓名与各字段,日期通过strftime('%Y/%m/%d')转换为要求的格式并添加括号。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 22:00:57