集合(set)是一个无序的不重复元素序列。可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
创建格式:
parame = {value01,value02,...}
或者
set(value)
 创建集合
# 创建空集合
set1 = set()
# 创建同一数据类型元素的集合
set2 = {"a", "b", "c", "d", "e", "f"}
# 创建不同数据类型元素的集合
set3 = {"a", 2, 'a', ()}
 集合中元素不可重复
set = {1,1,1,3,3,3,2,2,2}
print(set)    #1,3,2
 集合中元素无序
set = {2,1,5,6,2,8,4}
print(set)    #1,5,8,4,2,6
 添加集合元素
通过 add() 添加元素
将新元素添加到集合中,如果元素已存在,则不进行任何操作。
set1 = set(("Google", "Runoob", "Taobao"))
set1.add("Facebook")
print(set1)    #{'Taobao', 'Facebook', 'Google', 'Runoob'}
 通过 update() 添加元素
通过 update() 添加元素时,参数必须是可迭代对象,比如可以是 str、list、tuple、set、dict 等类型,该方法不同于 add() 方法,add() 是把参数当作一个整体添加到集合中,而 update() 则是把参数里的所有元素逐一添加到集合中。
set1 = set(("Google", "Runoob", "Taobao"))
set1.update({1,2})
print(set1)    #{1, 2, 'Google', 'Taobao', 'Runoob'}
set1.update([1,4],[5,6])  
print(set1)    #{1, 2, 4, 5, 6, 'Google', 'Taobao', 'Runoob'}
 删除集合元素
通过 remove() 删除指定元素,元素不存在则报错
通过 discard() 删除指定元素,元素不存在不会报错
通过 pop() 随机删除元素,会返回删除的元素(如果集合为空时使用 pop() 方法,则会出现报错)
通过 clear() 删除集合所有元素
注意:set 集合的 pop 方法会对集合进行无序的排列,然后将这个无序排列集合的左面第一个元素进行删除。
set1 = set(("Google", "Runoob", "Taobao"))
set1.remove("Taobao")
print(set1)    #{'Google', 'Runoob'}
set1.remove("Facebook")   # 不存在会发生错误
set1.discard("Facebook")  # 不存在不会发生错误
set2 = set1.pop()
set1.clear()
print(set1)    #set()
 集合运算操作符
运算符 & ,取交集,返回2个集合中相同的元素
运算符 | ,取并集,合并2个集合并去除重复元素
运算符 - ,取差集,从集合中去除元素
运算符 ^ ,取对称差集,返回两个集合中不重复的元素集合
关键字 in
通过关键字 in ,可检查当前集合中是否包含指定元素,返回结果为布尔值 True 或 False。
set1 = {1, 2, 3, 4}
set2 = {1, 5, 6, 4}
print(set1 & set2)    #{1, 4}
print(set1 | set2)    #{1, 2, 3, 4, 5, 6}
print(set1 - set2)    #{2, 3}
print(set2 - set1)    #{5, 6}
print(set1 ^ set2)    #{2, 3, 5, 6}
print(1 in set1)     #True
 集合内置方法
add()  | 为集合添加元素  | 
clear()  | 移除集合中的所有元素  | 
copy()  | 拷贝一个集合  | 
difference()  | 返回多个集合的差集  | 
difference_update()  | 移除集合中的元素,该元素在指定的集合也存在。  | 
discard()  | 删除集合中指定的元素  | 
intersection()  | 返回集合的交集  | 
intersection_update()  | 返回集合的交集。  | 
isdisjoint()  | 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。  | 
issubset()  | 判断指定集合是否为该方法参数集合的子集。  | 
issuperset()  | 判断该方法的参数集合是否为指定集合的子集  | 
pop()  | 随机移除元素  | 
remove()  | 移除指定元素  | 
symmetric_difference()  | 返回两个集合中不重复的元素集合。  | 
symmetric_difference_update()  | 移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。  | 
union()  | 返回两个集合的并集  | 
update()  | 给集合添加元素  | 
![LeetCode[313]超级丑数](https://img-blog.csdnimg.cn/img_convert/cd428195fb364118b2b4775b80f76991.png)


















