第27讲 集合(和猫妹学Python)
小朋友们好,大朋友们好!
我们今天学习集合(set)的知识,内容如下:
什么是集合(set)
集合的创建
集合的添加和删除
集合的交集、并集、差集
什么是集合
Python中的集合和数学中的集合概念类似,也是用于保存不重复元素的,它分为可变集合(set)和不可变集合(frozenset)。
我们要学习的是可变集合,它是无序可变序列。
集合的所有元素都放在一对{}之间,元素之间用,分割。
集合最好的应用是去掉重复元素,因为集合的每个元素是唯一的。
数学中的集合,一些能够确定的不同对象看成一个整体,而这个整体就是由这些对象的全体构成的集合。
集合最常见的操作就是创建集合,以及集合的添加、删除、交集、并集、差集等。
集合的创建
Python有两种创建集合的方式,推荐第二种方式:
- 使用{},格式如下:
setname={setelement1,....setelementn}
- 通过set()函数将列表、元组等可迭代对象转换为集合,格式如下:
setname=set(interation)
注意:
setname:集合名称
setelement:集合元素
interation:转换为集合的可迭代对象,可以是列表、元组、range对象等,也可以是字符串,如果是字符串,返回的集合将包含全部不重复字符的集合。
猫妹的测试代码27.2py:
print('使用{}方式创建集合:')
set1={'刘备','关羽','张飞','诸葛亮','赵云'}
print(set1)
print('\n使用interaion方式创建集合:')
list2=['曹操','司马懿','许攸']
set2=set(list2)
print(set2)
list3=('孙权','周瑜','黄盖')
set3=set(list3)
print(set3)
集合的添加和删除
向集合中添加元素,可以使用add()方法:
setname.add(element)
setname:集合名称
element:要添加集合的元素内容,只能使用字符串、数字、布尔类型。不能使用列表、元组等可迭代对象
可以使用del命令删除整个集合,也可以使用集合的pop()函数或remove()函数删除一个元素,或者使用集合的clear()函数清空集合,即使它变成空集合。
猫妹的测试代码27.3py:
print('使用set方式创建空集合:')
monk=set()
print(monk)
print('\n观音菩萨点播三藏取经')
print('使用setname.add(element)向集合添加元素:')
monk.add('唐僧')
print(monk)
print('\n五行山收徒美猴王')
print('使用setname.add(element)向集合添加元素:')
monk.add('孙悟空')
print(monk)
print('\n高老庄收徒天蓬元帅')
print('使用setname.add(element)向集合添加元素:')
monk.add('猪八戒')
print(monk)
print('\n流沙河收徒卷帘大将')
print('使用setname.add(element)向集合添加元素:')
monk.add('沙和尚')
print(monk)
print('\n三打白骨精之后,唐僧在猪八戒的煽风点火下,逐出了孙悟空')
print('使用setname.remove(element)从集合删除元素:')
monk.remove('孙悟空')
print(monk)
print('\n师徒三人不敌黄袍怪,孙悟空重回取经团队')
print('使用setname.remove(element)从集合删除元素:')
monk.add('孙悟空')
print(monk)
print('\n取经成功,四人成仙')
print('使用setname.clear()清空集合元素:')
monk.clear()
print(monk)
print('\n天下太平,安居乐业,不需要取经团队了')
print('使用del删除集合:')
del monk
print(monk)
集合的交集、并集、差集
集合最常用的操作就是进行交集、并集和差集运算,符号如下:
交集:&
并集:|
差集:-
集合在数学上的操作不止上述三个,我们现阶段学习掌握上面三个即可。
什么是集合的交集、并集、差集呢?
请看下图:
- 并集 对于两个给定集合A、B,由两个集合所有元素构成的集合,叫做A和B的并集。
- 对于两个给定集合A、B,由属于A又属于B的所有元素构成的集合,叫做A和B的交集。
- 记A,B是两个集合,则所有属于A且不属于B的元素构成的集合,叫做集合A减集合B(或集合A与集合B之差),记作A-B,如上图第二行第二列。类似还有B-A。
- 一般地,设S是一个集合,A是S的一个子集,由S中所有不属于A的元素组成的集合,叫做子集A在S中的绝对补集。
有了上面的概念,我们简单理解为:
set1={1,2,3}
set2={3,4,5}
set1|set2={1,2,3,4,5}
set1&set2={3}
set1-set2={1,2}
set2-set1={4,5}
猫妹的测试代码27.5.py:
set1={1,2,3}
set2={3,4,5}
print('\nset1和set2的并集')
print(set1|set2)
print('\nset1和set2的交集')
print(set1&set2)
print('\nset1和set2的差集(set1-set2)')
print(set1-set2)
print('\nset1和set2的差集(set2-set1)')
print(set2-set1)
好了,今天的学习就到这里!
我们下次见!