成绩排序(思路+代码详解)Python实现

这篇具有很好参考价值的文章主要介绍了成绩排序(思路+代码详解)Python实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

题目描述

输入

输出

样例输入

样例输出

题目分析:注意两点

思路分析:

代码详解:


题目描述

给出n个学生的姓名和成绩,将学生成绩从高到低排序,成绩相同的学生,按照姓名拼音从小到大排序

输入

输入包括多行,第一行是一个整数n(0<n<10),接下来有n行,每一行有学生姓名和两门课的成绩

输出

输出排序后的结果:排序原则:将学生成绩从高到低排序,成绩相同的学生,按照姓名拼音从小到大排序。

样例输入

3
tom 80 90
jack  80 78
lucy   81 77

样例输出

tom 80 90
jack 80 78
lucy 81 77

题目分析:注意两点

1.降序排序

2.成绩相同时,字典序小的名字在前

思路分析:

1.用字典:姓名作为键,成绩作为键值

2.用sorted进行排序

代码详解:

n=int(input())
dt={}
for  i in range(n):
    s=input().split()
    dt[s[0]]=(int(s[1]),int(s[2]))#将姓名作为键,将两科成绩放在一个元组里边作为键值
l=sorted(dt.items(),key=lambda x:(-(x[1][0]+x[1][1]),x[0]))#排序过程有详解
for x in l:
    print(x[0],x[1][0],x[1][1])#最后输出

排序过程详解:首先通过上边的循环构造了一个姓名作为键,两科成绩放在一个元组里面作为键值的字典,用dt.items()取所有的键和值放在一个列表里边,未经排序的dt.items()为[(tom,(80,90)),(jack,(80,78)),(lucy,(81,77))],通过sorted的另一个参数key来控制排序方法。
  先考虑成绩不同时的过程:因为sorted默认是从小到大排,所以取两门成绩之和的相反数-(x[1][0]+x[1][1]),(x[1][0]+x[1][1])越大则其相反数就越小,所以成绩中最高的就在前边,
  接下来考虑成绩相同的情况:因为最后返回的是一个元组(-(x[1][0]+x[1][1]),x[0]),元组比较大小是逐个比较的当第一个参数元素相同时即比较第二个,因为sorted默认是从小到大排所以,当分数相同时,姓名字母序小的在前。




 加油!!!文章来源地址https://www.toymoban.com/news/detail-518350.html

到了这里,关于成绩排序(思路+代码详解)Python实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 使用Python实现学生成绩管理系统

     学生成绩管理系统是一种非常普遍的管理系统 使用Python创建该系统,步骤如下: 使用os 模块 json模块,for 循环, if语句 函数,实现代码的编程,本系统主要由登录,注册,增删改查的功能  代码如下: 希望对大家有所帮!

    2024年02月11日
    浏览(14)
  • 基于Python+Django实现的学生成绩管理系统

    基于Python+Django实现的学生成绩管理系统

    作者主页:编程指南针 作者简介:Java领域优质创作者、CSDN博客专家 、掘金特邀作者、多年架构师设计经验、腾讯课堂常驻讲师 主要内容:Java项目、简历模板、学习资料、面试题库、技术互助 收藏点赞不迷路  关注作者有好处 文末获取源码   语言环境:Python3.7 数据库:

    2024年02月11日
    浏览(12)
  • Python毕业设计|课程设计|基于Python+Django实现的学生成绩管理系统

    Python毕业设计|课程设计|基于Python+Django实现的学生成绩管理系统

    作者主页:编程指南针 作者简介:Java领域优质创作者、CSDN博客专家 、掘金特邀作者、多年架构师设计经验、腾讯课堂常驻讲师 主要内容:Java项目、简历模板、学习资料、面试题库、技术互助 收藏点赞不迷路  关注作者有好处 文末获取源码   语言环境:Python3.7 数据库:

    2024年02月10日
    浏览(48)
  • C语言课程设计:学生成绩信息管理系统(排序、平均分、总分)详解

    C语言课程设计:学生成绩信息管理系统(排序、平均分、总分)详解

    1、需求分析 利用C语言编写一个可以对学生成绩信息进行管理的系统 0、退出系统 1、录入学生信息和成绩 2、打印学生信息 3、统计学生人数 4、查找学生信息 5、修改学生信息 6、删除学生信息 7、排序学生成绩 8、生成学生信息文件 9、读取文件学生信息 10、输出各科成绩不

    2024年02月11日
    浏览(18)
  • Python+Mysql(Pycharm)实现多用户登录学生成绩管理系

    Python+Mysql(Pycharm)实现多用户登录学生成绩管理系

    1.    实现三种用户的身份登录,且每种用户的用户数量可以是多个 2.    各个用户构造各自的数据库表,包含各自的基本信息 3.    其中的管理员可以进行对其他的表的操控,包括增删改查等等 4.    实现学生,老师的信息录入和学生的选课退课,老师的授课更改,查看

    2024年02月04日
    浏览(16)
  • python实现学生成绩管理程序,包含各科成绩的录入,计算各个学生的总分和平均分,统计各个科目的最高分、最低分和平均分。

    python实现学生成绩管理程序,包含各科成绩的录入,计算各个学生的总分和平均分,统计各个科目的最高分、最低分和平均分。

            编程题目:使用python实现学生各科成绩的录入,计算各个学生的总分和平均分,统计各个科目的最高分、最低分和平均分。其中学生人数通过输入来决定,科目包括语文、数学和英语这三门课程。(保留一位小数)         1、实现各科成绩的录入,有多个学生和多

    2024年02月09日
    浏览(11)
  • Python123:统计学生成绩、统计学生平均成绩与及格人数、成绩转换(C语言)

    1、统计学生成绩 题目 :本题要求编写程序读入N个学生的百分制成绩,统计五分制成绩的分布。百分制成绩到五分制成绩的转换规则: 大于等于90分为A; 小于90且大于等于80为B; 小于80且大于等于70为C; 小于70且大于等于60为D; 小于60为E。 输入格式: 输入在第一行中给出

    2024年02月06日
    浏览(9)
  • 【Python 随练】学生成绩等级划分

    利用条件运算符的嵌套来完成此题:学习成绩 ≥ 90 分的同学用 A 表示,60-89 分之间的用 B 表示,60 分以下的用 C 表示。 在本篇博客中,我们将使用条件运算符的嵌套来划分学生成绩的等级。根据学生成绩的不同范围,我们将使用条件运算符来决定相应的等级,并输出结果。

    2024年02月09日
    浏览(12)
  • Python学生成绩管理系统

    Python学生成绩管理系统

    根据项目要求,学生系统成绩管理系统应该具备以下几个功能: (1)系统的登录与注册: (2)学生成绩添加: (3)学生成绩修改: (4)学生成绩删除: (5)学生成绩查询: (6)学生成绩排序及显示: (7)系统退出: 系统主要功能分为三大模块,分别为:系统的登录

    2024年02月03日
    浏览(17)
  • 【python课程作业】python学生成绩管理系统

    功能介绍 平台采用B/S结构,后端采用主流的Python语言进行开发,前端采用主流的Vue.js进行开发。给舍友做的课程作业。 功能包括:成绩管理、学生管理、课程管理、班级管理、用户管理、日志管理、系统信息模块。 源码地址 https://github.com/geeeeeeeek/python_score 演示地址 http:/

    2024年03月13日
    浏览(13)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包