内容正文:
任务4.5 集合
调查问卷中随机调查对象的确定
4.5 集合——调查问卷中随机调查对象的确定
【任务描述】
导师想做一项问卷调查,需随机抽取学生完成调查,小T辅助导师一起开展这项工作。为了实验的客观性,小T在2000名同学中随机抽取500名同学完成这项调查,他想先通过计算机程序生成n个(n为进行调查问卷的人数,人数少于2000人)1到2000之间的随机整数,要求抽取同学的序号不能重复。然后再把这些数从大到小排序,按照排好的顺序去找对应学号的同学来填写调查问卷。
4.5 集合——调查问卷中随机调查对象的确定
调查对象的抽取
5000号中随机抽800
不能重复
集合
4.5 集合——调查问卷中随机调查对象的确定
【任务分析】
数据类型中存储的元素不能相同,可以利用Python中的集合来解决,编程思路如下:
(1)输入需进行问卷调查的人数。
(2)循环产生随机数,并加入到随机数集合中。
(3)判断随机数集合中的元素个数是否达到需进行问卷调查的人数。若已达到,则跳出循环。
(4)对随机数集合中的元素进行排序并输出,确认随机数个数是否达到需要进行问卷调查的人数。
4.5 集合——调查问卷中随机调查对象的确定
4.5.1 集合的基本操作:创建、运算
4.5.2 集合的常用方法:添加、删除
4.5.3 集合任务实现——调查问卷中随机调查对象的确定
4.5.1 集合的基本操作
4.5.1 集合的基本操作
集合的创建
集合的运算
4.5.1 集合的基本操作
集合(set)是一个无序不重复的元素集,它和字典一样都属于无序集合体,所以有很多的操作是一致的,不一样的是集合中的元素是不可修改的。综合来说,集合有如下特点:
(1)集合是一个无序的元素集,不记录元素的位置,因此不支持索引和切片操作。
(2)集合中可以有不同数据类型的元素,集合中的元素是不可重复的。
(3)集合中的元素是不可修改的,因此集合中的元素不能是列表、字典等可变数据类型。但可以向集合中添加和删除元素。
1.集合的创建
(1)用大括号“{}”创建集合,数据项间使用逗号分隔。集合的创建和字典类似,但空的大括号“{}”表示的是空字典,而非空集合,这里需要特别注意。集合定义如下:
4.5.1 集合的基本操作
【例4-56】集合的创建1。
setName={'李白','杜甫','王维','苏轼',5,'李白'} # 集合中包含了数值型和字符串型数据
print(setName) # 集合会自动将重复的元素删除,如setName中的’李白’
print(type(setName))
{5, '苏轼', '王维', '李白', '杜甫'}
<class 'set'>
4.5.1 集合的基本操作
(2)使用set()函数也可以创建集合,该函数实际上是把其他数据类型(如字符串、元组、集合等)转换成集合。空集合可以用set()来定义。
lstName=set(['李白','杜甫','王维','苏轼','李清照'])
strHello=set("Hello World!")
tupNumber=set((1,2,3,4)))
print(lstName)
print(strHello)
print(tupNumber)
{'杜甫', '苏轼', '李白', '王维', '李清照'}
{'e', 'H', 'l', 'W', 'r', 'd', 'o', ' ', '!'}
{1, 2, 3, 4}
【例4-57】集合的创建2。
4.5.1 集合的基本操作
即学即答:
对于正确的表达式a[3],a不可能是( )。
A.列表 B.元组
C.字典 D.集合
4.5.1 集合的基本操作
2.集合的运算
(1)并集
给定两个集合A、B,把它们所有的元素合并在一起组成的集合,叫做集合A与集合B的并集,在Python中可以使用“|”运算符来获得两个集合的并集
A
B
A|B
4.5.1 集合的基本操作
{'吴道子', '王维', '李白', '苏轼', '李清照', '顾恺之', '杜甫'}
setName={'李白','杜甫','王维','苏轼','李清照'}
setPainter={'吴道子','顾恺之','苏轼'}
print(setName|setPainter)
4.5.1 集合的基本操作
【例4-58】集合的并集。
4.5.1 集合的基本操作
(2)交集
给定两个集合A、B,由所有属于集合A且属于集合B的元素所组成的集合,叫做集合A与集合B的交集,在Python中可以使用“&”运算符来获得两个集合的交集。
A
B
A&B
{'苏轼'}
setName={'李白','杜甫','王维','苏轼','李清照'}
setPainter={'吴道子','顾恺之','苏轼'}
print(setName&setPainter)
4.5.1 集合的基本操作
【例4-59】集合的交集。
4.5.1 集合的基本操作
(3)差集
给定两个集合A、B,由所有属于A且不属于B的元素组成的集合,叫做集合A减集合B,在Python中可以使用“-”运算符来获得两个集合的差集。
A
B
A-B
4.5.1 集合的基本操作
{'李清照', '王维', '李白', '杜甫'}
setName={'李白','杜甫','王维','苏轼','李清照'}
setPainter={'吴道子','顾恺之','苏轼'}
print(setName-setPainter)
【例4-60】集合的差集。
4.5.1 集合的基本操作
(4)异或集
给定两个集合A、B,属于集合A或集合B,但不同时属于集合A和集合B的元素的集合称为集合A和集合B的对称差,即集合A和集合B的异或集,在Python中可以使用“^”运算符进行异或集运算。
A
B
A^B
4.5.1 集合的基本操作
{'顾恺之', '吴道子', '王维', '李清照', '杜甫', '李白'}
setName={'李白','杜甫','王维','苏轼','李清照'}
setPainter={'吴道子','顾恺之','苏轼'}
print(setName^setPainter)
【【例4-61】集合的异或集。
4.5.1 集合的基本操作
边学边练:
创建两个集合,其中一个由“排球”、“足球”、“乒乓球”、“’羽毛球”组成,另一个集合由“游泳”、“健身”、“跑步”、“乒乓球”组成。
请求出这两个集合的并集、交集、差集和异或集。
$$