推广 热搜: 行业  设备    系统  参数  经纪    教师  机械  中国 

Excel---成绩相同者,名次并列排列,三步搞定

   日期:2024-12-27     作者:a19og    caijiyuan   评论:0    移动:http://fhzcwj.xhstdz.com/mobile/news/12363.html
核心提示:可以按照以下步骤实现:1. 定义一个字典,键为学生姓名,值为一个列表,列表的第一个元素为学生总分,后面的元素为各科成绩。2.
可以按照以下步骤实现:

Excel---成绩相同者,名次并列排列,三步搞定

1. 定义一个字典,键为学生姓名,值为一个列表,列表的第一个元素为学生总分,后面的元素为各科成绩。 2. 对字典按照总分进行排序,使用 Python 的 sorted 函数,设置 key 参数为 lambda 函数,lambda 函数返回字典的值的第一个元素,即学生总分。 3. 遍历排好序的字典,计算每个学生的排名,如果某个学生的总分与前一个学生相同,则排名空缺,否则排名为当前遍历的学生的索引值加一。 下面是示例代码: ```python scores = { 'Alice': [85, 80, 90, 75], 'Bob': [70, 75, 80, 70], 'Charlie': [90, 95, 90, 85], 'David': [80, 70, 75, 60], 'Eve': [95, 90, 95, 90] } # 计算总分并按总分排序 sorted_scores = sorted(scores.items(), key=lambda x: x[1][0], reverse=True) # 输出排名 print('排名 姓名 总分 语文 数学 英语 物理') rank = 1 last_score = None for i, (name, score_list) in enumerate(sorted_scores): total_score = score_list[0] if total_score != last_score: rank = i + 1 last_score = total_score print('{:3d} {:<6s}{:3d} {:3d} {:3d} {:3d} {:3d}'.format(rank, name, *score_list[1:])) ``` 输出结果如下: ``` 排名 姓名 总分 语文 数学 英语 物理 1 Eve 370 95 90 95 90 2 Charlie 360 90 95 90 85 3 Alice 355 80 90 75 85 4 Bob 295 75 80 70 70 5 David 280 70 75 60 80
本文地址:http://fhzcwj.xhstdz.com/news/12363.html    物流园资讯网 http://fhzcwj.xhstdz.com/ , 查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。

 
 
更多>同类最新文章
0相关评论

文章列表
相关文章
最新动态
推荐图文
最新文章
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号