考生文件夹下有一个源文件PY202.py和一个文本文件,该文件是本题目的代码提示框架,其中代码可以
任意修改。请在该文件中编写代码,实现以下功能:
文件“singup.xt”中保存了若干条参加运动会学生的报名记录,每条记录的形式为“班级号_学号”,例
如“A1_12”,将每个班级报名情况按参加运动会人数从多到少排列(假设不存在人数相同的情况)并输出结
果如下:
A1->[’12’,’05’,’07’04’]
A4->[23′,’03’,’11]
A3->[’12’,’01]
A2->[’07’]
参考答案
def proc(stu_list): #stu_list:['A1_12\n', 'A4_23\n'] d = {}#{'A1': ['12', '05', '07', '04']} for item in stu_list: #item:'A1_12\n' a,b = item.split("_")#a='A1',b='12\n' b = b.strip()#b='12' if a in d: d[a] += [b] else: d[a] = [b] print("d==",d) lst = sorted(d.items(), key = lambda d:len(d[1]), reverse = True) return lst f = open("signup.txt","r") stu_list = f.readlines()#['A1_12\n', 'A4_23\n'] print(stu_list) #[('A1', ['12', '05', '07', '04'])] result = proc(stu_list) print("result",result) for item in result: print(item[0], '->', item[1]) f.close()