set1 = set({}) # 创建空集合
print(set1) # set()
set10 = frozenset({"PYTHON"}) # 创建 冻结的 不可变集合
set2 = {"banana", "apple", "mango"} # 创建集合
print(set2)
dic = {} # 创建空字典
print(dic) # {}
set3 = {"banana", "apple", "mango", "cherry", "cherry"} # 集合对元素自动去重复
print(set3)
# 集合内的元素 是不可重复的 每个元素都必须是不可变类型的
# 不可变类型 str int bool 没有增删改查操作 对字符串的改变 就是生成新的字符串
# 错误 set4 = {"ab", [1, 2, 3], "cd"} # TypeError: unhashable type: 'list'
# 集合 是可变类型的 可以和 列表 元组 字典 一样进行增删
print("--------------------------两种增添----------------------------")
set10 = frozenset({"LOVE"}) # 冻结的 不可变集合
# 错误set10.add("me")
se = {"a", "b", "c", "d"}
se.add("e")
print(se) # 集合内的元素是无序的
se.update({"f", "g"}) # 可迭代对象 集合{"f", "g"}
print(se)
se.update(["A", "B", "C"]) # 可迭代对象 列表["A", "B", "C"]
print(se)
se.update(range(1, 4)) # 可迭代对象 range()
print(se)
print("--------------------------两种删除----------------------------")
print(se.pop()) # 随机删除集合中的一个元素 返回值就是该元素 此处被打印出来
print(se)
se.remove("B") # 指定删除某元素 传入的参数就是该元素
print(se)
print("--------------------------集合间的运算----------------------------")
# 集合与集合可以进行 数学概念上的 交集 并集 差集 反交集 运算
set5 = {1, 2, 3, 4, 5}
set6 = {3, 4, 6}
print(set5 & set6) # 交集 intersection
print(set5 | set6) # 并集 union
print(set5 - set6) # 差集 difference
print(set5 ^ set6) # 反交集 symmetric_difference
print("--------------------------对集合的判定----------------------------")
# 判断集合是否是另一个集合的超集或子集
set7 = {'a', 'b', 'c'}
set8 = {'A', 'a', 'b', 'c', 'D'}
print(set7.issubset(set8)) # set7是set8的子集
print(set8.issuperset(set7)) # set8是set7的超集
set1 = {"love"} # {}内是集合的元素 当前只有一个item元素 该元素是 一个字符串"love"
print(set1)
for i in set1: # 遍历集合{'love'} 只遍历出一个元素
print(i)
set2 = set("love") # 字符串是可迭代对象 "love" 是由4个字符构成的 l o v e
print(set2)
for i in set2: # 该集合为{'o', 'v', 'l', 'e'}
print(i)