本节导读
- 集合的特性与作用
- 集合的创建与转换
- 集合的常见用法
一 集合的特性与作用
集合是一个数学概念:由一个或多个确定的元素所构成的整体叫做集合。
集合中的元素有三个特征:
- 确定性(元素必须可hash)
- 互异性(去重)
- 无序性(集合中的元素没有先后之分),如集合{3,4,5}和{3,5,4}算作同一个集合。
集合的主要作用:
- 去重,把一个列表变成一个集合就主动去重了。
- 关系测试,测试两组数据之前的交集差集并集等关系
二 集合的创建与转换
#集合的创建 se = set() se = {11,22,33} #看起来像是没有值的字典 se = {} # 注意: 创建的集合为空时,此时,se 是字典类型,不应该用次方式创建空字典 # 集合的转换 #可转换字符串,列表,元组 set(list/str/trupe)
三 集合的常见用法
- 增加
s.add() s.update() #1添加多个值,2合并集合与,(列表,集合)
- 删除
s.pop() #删除并返回一个任意的集合元素。(测试中删除的第一个) s.remove() #删除指定元素,若删除元素不存在,则报错 s.discard() #删除指定元素,若删除元素不存在,不报错 s.clear() #清空
- 关系测试
#交集 set1.intersection(set2) set1 & set2 #差集 set1.difference(set2) set1 - set2 set1.difference_update(set2) #将set1与set2的差集赋值给set1 #并集 set1.union(set2) set1 | set2 #管道符 #对称差集 set1.symmetric_difference(set2) #两个集合不相交的元素的集合,eg:只买了iphone7 or iphone8的人 set1 ^ set2 #包含关系 set1.isdisjoint(set2) #判断set1与set2是否不相交 set1.issubset(set2) or set 1 <=set 2 #set1是否是set2的子集 set2.issuperset(set1) or set 2 >=set 1 #set2是否是set1的超级