如何从字典列表中获取薪资最高的前三名员工?
筛选薪资最高的前三名员工
给定一个包含多个字典的列表,每个字典包含name(姓名)和salary(薪资)字段,需要从中筛选出薪资最高的前三名员工。
示例数据
sample_list = [ {'name': 'John', 'salary': 6000}, {'name': 'Jane', 'salary': 8000}, {'name': 'Tom', 'salary': 7500}, {'name': 'Emma', 'salary': 8000}, {'name': 'Emily', 'salary': 3000}, {'name': 'Dan', 'salary': 500}, {'name': 'Brad', 'salary': 400} ] top_three_employees = 3 expected_output = ['Jane', 'Tom', 'Emma']
解决方案
可以通过以下步骤实现:
- 对员工列表按薪资降序排序,薪资相同的情况下可根据需求调整排序规则(如姓名顺序)
- 提取排序后的前
top_three_employees个员工的姓名
基础实现代码:
# 按薪资降序排序 sorted_employees = sorted(sample_list, key=lambda x: -x['salary']) # 提取前3名的姓名 result = [emp['name'] for emp in sorted_employees[:top_three_employees]] print(result) # 输出: ['Jane', 'Emma', 'Tom']
注:示例预期输出中Tom在Emma之前,若需要匹配该顺序,可调整排序逻辑,比如优先按薪资降序,再按姓名的某种自定义顺序排序;如果对同薪资员工的顺序无要求,基础实现即可满足需求。
内容的提问来源于stack exchange,提问作者A Jay
相关产品推荐
相关产品推荐

