编程实现:补考名单基本信息如下,统计出需补考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