一 、set基础
set和ldict类似,也是一组key的集合,但是不能存储value值。由于key值不能重复,所以,在set中,没有重复的key。
set的创建
我们创建set可以使用set() 函数,将一个列表转成一个集合,
注意:因为集合和字典的key一样,不能有list,set ,tuple 数据类型,因此我们使用list强制转成set时,list必须是单层列表,列表元素不能有list、set、tuple、dict等数据类型
我们使用 “{ }”的方式创建集合
当我们需要创建一个空集合时,我们不能使用“{ }”这样python会误认为我们在创建一个空字典
我们使用set() 函数创建一个空集合。
二 、set的特性
在list数据类型中,其支持,索引、切片、重复、连接、与成员操作符等等。但是在set中我们的set不支持索引、切片、重复、连接等操作,支持成员操作符,因为set是无序且无重复元素的集合。
无序:我们添加元素的顺序和存储的顺序不一致。
成员操作符 : in 、 not in:
当然set也支持循环。
三、set的增删
(一)增加元素
(1)增加单个元素add()
(2)增加多个元素
对于已经存在的元素将忽略,只添加没有的元素
(二)元素的删除
(1)set.pop()方法
随机删除集合中的一个元素,并且返回删除的元素
(2)set.remove()方法
从集合set中删除指定的元素,无返回值
当删除的元素不存在时,报错。
(3)set.clear()方法
将集合的元素全部删除,只剩下一个空的集合
三、set的操作
(一)并集
(1)使用set方法函数set.union(set1)
(2)使用 |
(二)交集
(1)内置方法函数
set.intersection(set1) 求集合set和集合set1的交集,并且将交集以集合的形式返回。
set.intersection_update(set1) 求集合set和set1的交集并将这个交集赋值给set集合,该函数无返回值。
(2)&
我们可使用操作符来“&”来对两个集合求交集,以集合的形式返回交集
(三)差集
(1)内置方法函数set.difference(set1) 方法函数求集合set对集合set1的差集,其以集合的形式返回差集,等价
于set - set.intersection(set1)
set.difference_update(set1) 方法函数求集合set对集合set1的差集,并将差集赋给set,该函数
数无返回值,等价于set=set - set.intersection(set1)
(2)-
使用符号“-”也可以对两个集合求差集,该符号返回集合的差集
(三)对等差分
set.symmetric_difference(set1) 函数方法用来求取两个集合的对等差分,该函数的返回值是对等
差分集合,这个等价于set.union(set1) - set.intersection(set1)
(四)set是不是set1的子集
set.issubset(set1) 函数用来判断set集合是不合适set1集合的子集,如果是,返回True,否则返回
False
(五)set是不是set1的父集
set.issuperset(set1) 判断集合set是不是set1的父集,如果是返回True,否则返回False
(六)set合set1是否有交集
set.isdisjoint(set1) 函数用来判断集合set和集合set1是不是没有交集,如果没有交集返回True,如果有交
集返回False