python编程 急需

编程实现:补考名单基本信息如下,统计出需补考3门、2门、1门的学生名单 补考名单 提示:集合的并交差运算 数学 李佳、郑浩、蓝可、李苗英语 罗心怡、李苗、张启明 计算机 张启明、郑浩、李苗 需补考三门的是:('李苗 参考效果: 需补考两门的是:'张启明',‘郑浩 需补考一门的是:('蓝可,‘李佳,‘罗心怡

>>> x = set('spam')  
>>> y = set(['h','a','m'])  
>>> x, y  
(set(['a', 'p', 's', 'm']), set(['a', 'h', 'm']))  
  
再来些小应用。  
  
>>> x & y # 交集  
set(['a', 'm'])  
  
>>> x | y # 并集  
set(['a', 'p', 's', 'h', 'm'])  
  
>>> x - y # 差集  
set(['p', 's'])  

s = {'李佳', '郑浩', '蓝可', '李苗'}
e = {'罗心怡', '李苗', '张启明'}
c = {'张启明', '郑浩', '李苗'}
print('补考3门:', s & e & c)
print('补考2门:', (s & e | s & c | e & c)-(s & e & c))
print('补考1门:', (s - e | s - c | e - c)-(s & e | s & c | e & c)-(s & e & c))

math = set(['李佳','郑浩','蓝可','李苗'])
english = set(['罗心怡', '李苗','张启明'])
computer = set(['张启明','郑浩','李苗'])
three = math&english&computer
print('需补考三门的是:', three)
two = (math&english|english&computer|math&computer) - three
print('需补考两门的是:',  two)
one = (math|english|computer) - two - three
print('需补考一门的是:', one)

上面的回答重复了,补考一门,两门的包括了三门的

输出:

需补考三门的是: {'李苗'}
需补考两门的是: {'张启明', '郑浩'}
需补考一门的是: {'李佳', '蓝可', '罗心怡'}
math = ['李佳','郑浩','蓝可','李苗']
english = ['罗心怡', '李苗','张启明']
computer = ['张启明','郑浩','李苗']
a = math + english + computer
list1,list2, list3 = [],[],[]
for i in set(a):
    if a.count(i)==1:
        list1.append(i)
    elif a.count(i)==2:
        list2.append(i)
    else:
        list3.append(i)
print('需补考一门的是:',list1)
print('需补考两门的是:',list2)
print('需补考三门的是:',list3)

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632