course1 = set(('李雷', '张玉', '王晓刚', '陈红静', '方向', '司马清'))
course2 = set(('施然', '李芳芳', '刘潇', '方向', '孙一航', '黄煌'))
course3 = set(('陈红静', '方向', '刘培良', '张玉', '施小冉', '司马清'))
d={}
data=[x for y in [course1,course2,course3]
for x in y]for x in data:
if x in d:
d[x]+=1
else:
d[x]=1
print(d,'\n')
print('这个班还有 %d 学生没有选课(by set)' % (25-len(course1|course2|course3)))
print('这个班还有 %d 学生没有选课(by dict)' % (25-len(d)))
print('有 %d 位学生同时选修了2门课' % list(d.values()).count(2))
print('有 %d 位学生同时选修了3门课' % list(d.values()).count(3))
print('有 %d 位学生同时选修了1门课' % list(d.values()).count(1))