输出排列后的学生编号

"""
/*

某学校举行运动会,学生们按编号(1、2、3…n)进行标识,
现需要按照身高由低到高排列,
对身高相同的人,按体重由轻到重排列,
对于身高体重都相同的人,维持原有的编号顺序关系。
请输出排列后的学生编号
输入描述:
两个序列,每个序列由N个正整数组成,(0<n<=100)。
第一个序列中的数值代表身高,第二个序列中的数值代表体重,
输出描述:
排列结果,每个数据都是原始序列中的学生编号,编号从1开始,
实例一:
输入:
4
100 100 120 130
40 30 60 50
输出:
2134
*/
“”"

  	n = int(input().strip())
    heights = input().strip().split()
    weights = input().strip().split()
    ids = [i for i in range(1,n+1)]
    students = list()
    for h,w,id in zip(heights,weights,ids):
        students.append((h,w,id))
    students.sort(key=lambda x:(x[0],x[1]))
    # print(students)
    ans = [str(j[2]) for j in students]
    print("".join(ans))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我来设计一个信息管理系统。首先,我们需要定义一个学生类,包含姓名、出生年月、学号和数学、语文、英语三门课程的成绩。然后,我们需要定义一个学生列表,用于存储所有学生信息。接下来,我们需要实现以下功能: 1. 添加学生信息:可以逐一输入每个学生的信息,包括姓名、出生年月、学号和三门课程的成绩,然后将其添加到学生列表中。 2. 排序学生信息:可以按照学生的总分或者某一门课程的成绩进行升序或者降序排列输出排好序的学生列表。 3. 输出班级平均分:可以计算出班级数学、语文、英语三门课程的平均分,并输出给用户。 以下是一个简单的Python代码实现: ```python class Student: def __init__(self, name, birth, id, math, chinese, english): self.name = name self.birth = birth self.id = id self.math = math self.chinese = chinese self.english = english self.total = math + chinese + english students = [] def add_student(): name = input("请输入学生姓名:") birth = input("请输入学生出生年月:") id = input("请输入学生学号:") math = float(input("请输入学生数学成绩:")) chinese = float(input("请输入学生语文成绩:")) english = float(input("请输入学生英语成绩:")) student = Student(name, birth, id, math, chinese, english) students.append(student) def sort_students(key, reverse): sorted_students = sorted(students, key=lambda x: getattr(x, key), reverse=reverse) for student in sorted_students: print("{},{},{},{},{},{},总分:{}".format(student.name, student.birth, student.id, student.math, student.chinese, student.english, student.total)) def calculate_avg(): math_avg = sum([student.math for student in students]) / len(students) chinese_avg = sum([student.chinese for student in students]) / len(students) english_avg = sum([student.english for student in students]) / len(students) print("数学平均分:{},语文平均分:{},英语平均分:{}".format(math_avg, chinese_avg, english_avg)) while True: print("请选择操作:") print("1. 添加学生信息") print("2. 按总分排序") print("3. 按数学成绩排序") print("4. 按语文成绩排序") print("5. 按英语成绩排序") print("6. 计算班级平均分") print("0. 退出") choice = int(input("请输入操作编号:")) if choice == 1: add_student() elif choice == 2: sort_students("total", True) elif choice == 3: sort_students("math", True) elif choice == 4: sort_students("chinese", True) elif choice == 5: sort_students("english", True) elif choice == 6: calculate_avg() elif choice == 0: break else: print("请输入正确的操作编号!") ``` 注意,在实际开发中,可能需要对输入的数据进行格式检查和异常处理,以保证程序的稳健性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值