"""
set()函数是个无序的去重集合,可以用来过滤重复元素
Python 提供了 2 种创建 set 集合的方法,分别是使用 {} 创建和使用 set() 函数将列表、元组等类型数据转换为集合
"""# 空集合
s0 = set() # 正确方式 → set()
# s = {} → 要创建空集合,只能使用 set() 函数实现。因为直接使用一对 {},Python 解释器会将其视为一个空字典
print(s0)
# 从可迭代对象创建
s1 = set([1,2,2,3]) # 列表转集合 → {1,2,3}
s2 = set("hello") # 字符串转集合 → {'h','e','l','o'}
s3 = frozenset([1,2,3]) # 不可变集合 → 无法修改元素
print(s1,s2,s3)# 添加元素
# 使用 add() 方法添加的元素,只能是数字、字符串、元组或者布尔类型(True 和 False)值,不能添加列表、字典、集合这类可变的数据
s = {1,2,3}
s.add(5) # → {1,2,3,5}
s.add("abc")
s.add((4,5,6))
s.add(False)
print("s.add()", s)s.update([5,6,7]) # → {1,2,3,5,6,7}
print("s.update([5,6,7]) ", s)# 删除元素
s.remove(7) # → 删除指定元素,不存在则报错
print("s.remove(7) ", s) # {1, 2, 3, 5, 6}
s.discard(100) # 安全删除,元素不存在不报错
print("s.discard(100)", s) # {1, 2, 3, 5, 6}
x = s.pop() # 随机删除一个元素并返回
print(" s.pop()", s, x)a = {1,'c',1,(1,2,3),'c'}
print(a) #集合可以用来过滤重复元素# Python set集合做交集、并集、差集运算
# 交集 & 取两集合公共的元素
# 并集 | 取两集合全部的元素,过滤重复元素
# 差集 - 取前一个集合中,另一个集合没有的元素
# 对称差集 ^ 取集合 A 和 B 中不属于 A&B 的元素A= set([1,2,3])B= set([3,4,5])
print("交集", A&B) # 交集 {3}
print("并集", A|B) # 并集 {1, 2, 3, 4, 5}
print("差集", A-B) # 差集 {1, 2}
print("对称差集", A^B) # 对称差集 {1, 2, 4, 5}
print(type(A^B))my_list = {1, 2, 3, 4, 5}
last_element = my_list.pop()
print(last_element) # 输出:1
print(my_list) # 输出: [1, 2, 3, 4]