# 集合 set
# 创建空集合
s1 = set()
print(s1)
s2 = {'a', 'b', 'c', 'c'}
print(s2) #{'c', 'b', 'a'}
注意:集合是无序的且不能重复
# 集合的运算
s3 = {1,2,3,4,5}
s4 = {3,4,5,6,7}
# 集合的减法 -
s5 = s3 - s4
print(s5)#{1, 2} 即s3减去s3和s5中共有的元素
# 集合的并集 |
s6 = s3 | s4
print(s6)#{1, 2, 3, 4, 5, 6, 7}
# 集合的交集 &
s7 = s3 & s4
print(s7)#{3, 4, 5}
# 集合的异或 ^ 不是交集的部分
s8 = s3 ^ s4
print(s8)#{1, 2, 6, 7}
# 常用的函数
# add() 给集合添加一个元素
s4.add('abc')
print(s4)
# s3 = {1,2,3,4,5}
# update()
# 1. 传入的数字 不能传数字的
# s3.update(3) #TypeError: 'int' object is not iterable
# print(s3)
# 2. 字符串 # 可以传。 因为 string 字符串类型 可以遍历 iterable
# s3.update('abcd')
# print(s3)
# 3. 元组 # 可以传
# s3.update(('a','b'))
# print(s3)
# 4. 列表 也是可以的
# s3.update(['a','c'])
# print(s3)
# 5. 字典 可以传, 是把键传了进去
# s3.update({
# "name": "andy",
# "age": 18
# })
# print(s3)
# tup1 = ({
# "name": "andy", # TypeError: unhashable type: 'dict' hash
# "age": 18
# }, 'b')
# s3.update(tup1)
# dicard() 从集合里移除一个元素
# s9 = {'a', 'b', 'c', 'c'}
# s9.discard('b')
# print(s9)
s9 = {'a', 'b', 'c', 'c'}
s9.discard('d')
print(s9)
# remove() 如果集合里没有这个元素,它会报错
s10 = {'a', 'b', 'c', 'c'}
s10.remove('b')
print(s10)
# s11 = {'a', 'b', 'c', 'c'}
# s11.remove('d')
# print(s11)
# len()
# difference() 和运算减法 是一样的。
s11 = {1,2,3,4,5}
s12 = {3,4,5,6,7}
s13 = s11.difference(s12)
print(s13)