python-班级人员信息统计
输入a,b班的名单,并进行如下统计。
输入格式:
第1行::a班名单,一串字符串,每个字符代表一个学生,无空格,可能有重复字符。
第2行::b班名单,一串字符串,每个学生名称以1个或多个空格分隔,可能有重复学生。
第3行::参加acm竞赛的学生,一串字符串,每个学生名称以1个或多个空格分隔。
第4行:参加英语竞赛的学生,一串字符串,每个学生名称以1个或多个空格分隔。
第5行:转学的人(只有1个人)。
输出格式
特别注意:输出人员名单的时候需调用sorted函数,如集合为x,则print(sorted(x))
输出两个班级的所有人员数量
输出两个班级中既没有参加ACM,也没有参加English的名单和数量
输出所有参加竞赛的人员的名单和数量
输出既参加了ACM,又参加了英语竞赛的所有人员及数量
输出参加了ACM,未参加英语竞赛的所有人员名单
输出参加英语竞赛,未参加ACM的所有人员名单
输出参加只参加ACM或只参加英语竞赛的人员名单
最后一行:一个同学要转学,首先需要判断该学生在哪个班级,然后更新该班级名单,并输出。如果没有在任何一班级,什么也不做。
输入样例:
abcdefghijab 1 2 3 4 5 6 7 8 9 10 1 2 3 a b c 1 5 10 a d e f a
输出样例:
Total: 20 Not in race: ['4', '6', '7', '8', '9', 'g', 'h', 'i', 'j'], num: 9 All racers: ['1', '10', '2', '3', '5', 'a', 'b', 'c', 'd', 'e', 'f'], num: 11 ACM + English: ['1', 'a'], num: 2 Only ACM: ['2', '3', 'b', 'c'] Only English: ['10', '5', 'd', 'e', 'f'] ACM Or English: ['10', '2', '3', '5', 'b', 'c', 'd', 'e', 'f'] ['b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
代码:
a = input() b = input() acm = input() eng = input() transfer = input() a_class = list(set(a)) a_num = len(a_class) b_class = b.split(" ") acm_class = acm.split(" ") eng_class = eng.split(" ") for i in b_class[::]: if i == '': b_class.remove(i) for i in acm_class[::]: if i == '': acm_class.remove(i) for i in eng_class[::]: if i == '': eng_class.remove(i) b_num = len(b_class) a_b = a_class + b_class print("Total: %d" % (a_num + b_num)) not_in_race = list(set(a_b).difference(acm_class, eng_class)) All_racers = list(set(acm_class + eng_class)) ACM_English = list(set(acm_class).intersection(set(eng_class))) Only_ACM = list(set(acm_class).difference(set(eng_class))) Only_English = list(set(eng_class).difference(set(acm_class))) ACM_Or_English = list(set(Only_ACM).union(set(Only_English))) print("Not in race: {0}, num: {1}".format(sorted(not_in_race), len(not_in_race))) print("All racers: {0}, num: {1}".format(sorted(All_racers), len(All_racers))) print("ACM + English: {0}, num: {1}".format(sorted(ACM_English), len(ACM_English))) print("Only ACM: {0}".format(sorted(Only_ACM))) print("Only English: {0}".format(sorted(Only_English))) print("ACM Or English: {0}".format(sorted(ACM_Or_English))) if transfer in a_class: a_class.remove(transfer) print(sorted(a_class)) elif transfer in b_class: b_class.remove(transfer) print(sorted(b_class))
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
2021-03-08 每日学习