统计选修课名单

【问题描述】VHd100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

有学生选修课报名列表,值为[('王浩','手工'),('李斌','摄影'),('张一山','手工'),('唐红','手工'),('陈朋','广告设计'),('赵明','摄影')],请编写一个程序统计各选修课的学生名单。VHd100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

统计选修课名单输出结果:VHd100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

选修了"手工"的同学有:王浩,张一山,唐红VHd100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

选修了"摄影"的同学有:李斌,赵明VHd100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

选修了"广告设计"的同学有:陈朋VHd100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

【题前思考】VHd100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

根据问题描述,填写表4-2-3。VHd100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

表4-2-3 问题分析VHd100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

统计选修课名单VHd100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

【解题思路】VHd100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

我们要统计的对象是课程,因此使用课程名称作为字典的键,而选修了本课程的学生名单作为该键的值。当课程名称在字典中时,将学生姓名追加到该课程对应的学生名单中;如果课程名称没有在字典中,则为该课程创建项,以这个学生构成的列表作为其值。VHd100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

【程序代码】VHd100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

统计选修课名单VHd100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

【代码分析】VHd100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

①:定义一个空的字典用于保存选修各课程的学生名单。VHd100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

②:for s in a:对列表a中的每个值执行循环体中的操作。if s[1]in res:res[s[1]].append(s[0])判断s[1]中的值(课程名称)是否在字典res中,如果在字典中,就将姓名s[0]追加到课程名s[1]对应的学生名单中。res[s[1]]表示选修了课程s[1]的学生名单,即学生姓名构成的列表。VHd100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

③:如果课程没有在res中,则在字典res中为课程s[1]新建一个项,同时给出选修这门课的初始学生名单,此时显然只有一个学生s[0]选修了这门课,学生名单就表示为[s[0]]。VHd100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

④:print(f'选修了"{s}"的同学有:{",".join(res[s])}')表示格式化输出数据,res[s]是选修了课程s的学生名单,",".join(res[s])表示用“,”将学生名单中的姓名连接成一个字符串。VHd100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

关 键 词

统计

相关教程

提示声明

  • 免责声明:本站资源均来自网络或者用户投稿,仅供用于学习和交流:如有侵权联系删除!

猜你喜欢