集合练习题
小明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性他先用计算机生成了N个1~1000之间的随机整数(N<=1000),
N是用户输入的,对于其中重复的数字,只保留一个,把其余相同的数字去掉,不同的数对应着不同的学生的学号,
然后再把这些数从小到大排序,按照排好的顺序去找同学做调查,请你协助明明完成“去重”与排序工作
分析:集合可以用来去重,即每生成一个随机数便将其加入到定义的空集合中集合即可
sorted函数可以对集合进行排序
1 import random 2 n=int(input("请输入学生数量")) 3 li=set() 4 m=0 5 while m<n: 6 a=random.randint(0,1000) 7 if a not in li: 8 li.add(a) 9 m+=1 10 print(li) 11 li=list(li) 12 li.sort() 13 print(li)
经理有:曹操,刘备,孙权
技术员:曹操,孙权,张飞,关羽
用集合求:
1.既是经理也是技术员的有谁?2.是技术员但不是经理的人有谁? 3.是经理,但不是技术员的有谁? 4.张飞是经理吗? 5.身兼一职的人有谁? 6.经理和技术员共有几人?
1 a={"曹操","刘备","孙权"} 2 b={"曹操","孙权","张飞","关羽"} 3 #1.既是经理也是技术员的有谁? 4 s=a&b 5 print(s) 6 # 2.是技术员但不是经理的人有谁? 7 s=b-a 8 print(s) 9 # 3.是经理,但不是技术员的有谁? 10 s=a-b 11 print(s) 12 # 4.张飞是经理吗? 13 s="张飞" in a 14 print(s) 15 # 5.身兼一职的人有谁? 16 s=a^b 17 print(s) 18 # 6.经理和技术员共有几人? 19 s=a|b 20 print(s)


浙公网安备 33010602011771号