【问题描述】
从键盘中读入最多不超过50个学生的学生信息(包括空格隔开的姓名、学号、年龄信息,以学号从低到高排序)
【输入形式】
每次键盘读入最多不超过50个学生的学生信息:
第一行为学生人数;
后面每一行为空格隔开的学生学号、姓名、年龄,其中学号和年龄都是整数。
【输出形式】
分别以姓名顺序(从低到高)和年龄顺序(从低到高)将学生信息输出,每行输出一位学生的信息,其中学号占3位,姓名(英文)占6位,年龄占3位,均为右对齐。年龄相同时按姓名从低到高排序。两种顺序的输出结果用一行空行相隔。
【输入样例】
4 1 aaa 22 45 bbb 23 54 ddd 20 110 ccc 19
【输出样例】
1 aaa 22 45 bbb 23 110 ccc 19 54 ddd 20 110 ccc 19 54 ddd 20 1 aaa 22 45 bbb 23
【样例说明】
从键盘输入四个学生记录,分别按姓名和年龄排序并输出。
【评分标准】
分别以姓名顺序和年龄顺序输出学生信息。
n = int(input())
#n人数
my_list = []
#创建一个主列表
for i in range(n):
j = []#创建新列表并添加到主序列表中
my_list.append(j)#将n个列表添加到主列表里面
for i in range(1):
a,b,c=map(str,input().split(' '))
j.append(a)
j.append(b)
j.append(c)
my_list2=sorted(my_list,key=(lambda x:x[1]))#姓名排序排序
for i in range(n):
print("%3s%6s%3s"%(my_list2[i][0],my_list2[i][1],my_list2[i][2]))
print("\n")
my_list3=sorted(my_list,key=(lambda x:x[2]))#年龄排序排序
for i in range(n):
if n>=2:
if my_list3[0][2] == my_list3[1][2]:
print("%3s%6s%3s"%(my_list2[i][0],my_list2[i][1],my_list2[i][2]))
else:
print("%3s%6s%3s"%(my_list3[i][0],my_list3[i][1],my_list3[i][2]))
else:
print("%3s%6s%3s"%(my_list2[i][0],my_list2[i][1],my_list2[i][2]))
说明:将上个程序改了下