集合(set)是一个无序的不重复元素序列。
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
集合运算功能主要包含一消除重复元素,二关系测试。
1. 传入序列
set1 = set((1,2,3,4,5,6,7,8,9))
set2 = set([1,2,3,4,5,6,7,8,9])
print(set1)
print(set2)
print(type(set1))
print(type(set2))
#>>>{1, 2, 3, 4, 5, 6, 7, 8, 9}
# >>>{1, 2, 3, 4, 5, 6, 7, 8, 9}
#>>><class 'set'>
#>>><class 'set'>
集合不可以通过小标访问,不可以通过下标修改。
2. 增加
- add()
功能:将元素添加到集合中,如果元素已存在,则不进行任何操作。
格式:集合名.add(“指定元素”)
返回:None
set1 = set((1,2,3,4,5,6,7,8,9))
a= set1.add(343)
print(set1)
print(a)
# >>>{1, 2, 4, 5, 6, 7, 8, 9,343}
# >>>None
- update()
功能:将列表(数组,元组,字典等,但不能是单个元素)添加到集合中,如果元素已存在,则不进行任何操作。
格式:集合名.update(“指定列表”)
返回:None
set1 = set((1,2,3,4,5,6,7,8,9))
a= set1.update([2121,5454,5345,32])
print(set1)
print(a)
# >>>{32, 1, 2, 3, 4, 5, 6, 7, 8, 9, 2121, 5345, 5454}
# >>>None
注意:列表中的元素是随机插入集合之中,符合集合中无序的特点。
3. 删除
- pop()
功能:随机删除一个元素并返回删除的元素。
格式:集合名.pop()
返回:删除的元素
set1 = set((1,2,3,4,5,6,7,8,9))
a= set1.pop()
print(a)
print(type(a))
# >>>1
#>>> <class 'int'>
pop后面的括号里面只能为空,否则报错。
2. remove()
功能:删除指定元素(和remove用法类似,但是指定元素不存在不报错)
格式:集合名.remove(“指定元素”)
返回:None
set1 = set((1,2,3,4,5,6,7,8,9))
a= set1.remove(3)
print(set1)
print(a)
# >>>{1, 2, 4, 5, 6, 7, 8, 9}
# >>>#<class 'NoneType'>
- discard()
功能:删除指定元素(和remove用法类似,但是指定元素不存在不报错)
格式:集合名.discard(“指定元素”)
返回:None - clear()
功能:清空集合
格式:集合名.clear()
返回:空集合
4. 集合运算
1. 集合运算符
- |:求并集
- &:求交集
- -:求差集(在前者中且不在后者中的项)
- ^:求对称差集(在前者或者后者中,但不会同时出现二者中的)
2. 集合运算函数
- union()
功能:求两个集合的并集
格式:集合1名.union(集合2名)
返回:并集集合 - intersection()
功能:求两个集合的交集
格式:集合1名.intersection(集合2名)
返回:交集集合 - difference()
功能:求两个集合的差集(在集合1中去掉两个集合的交集)
格式:集合1名.intersection(集合2名)
返回:差集集合 - symmetric_difference()
功能:求两个集合的对称差集(两个集合的并集去掉两个集合的交集)
格式:集合1名.intersection(集合2名)
返回:对称差集集合
3. 关系测试
- issuperset()
功能:检查当前集合是否是所选集合的超集
格式:当前集合.issuperset(所选集合)
返回:布尔值 - issubset()
功能:检查当前集合是否是所选集合的子集
格式:当前集合.issubset(所选集合)
返回:布尔值 - isdisjion()
功能:检查两个集合是否不存在交集
格式:当前集合.isdisjoin(所选集合)
返回:布尔值