#1.创建集合使用{}或者set()函数,创建空的集合,只能使用set()函数,因为{}是字典
#集合相比于列表和元组,有一个去掉重复元素的特性
set1 = {10, 20, 30, 40, 10}
set2 = set()
print(set1) #输出 {40, 10, 20, 30}
#这里注意,集合的输出跟定义的顺序不一致,也就是说集合没有顺序,所以不支持下标操作
#这里也去掉了重复的数据
print(set2) #输出 set()
print(type(set1)) #输出 <class 'set'>
print(type(set2)) #输出 <class 'set'>
set3 = set('abcdefg')
set4 = set('123456')
print(set3) #输出 {'g', 'b', 'c', 'e', 'd', 'a', 'f'}
print(set4) #输出 {'4', '3', '5', '6', '1', '2'}
=======================================
#2.集合的常见操作
#2.1 增加
#2.1.1 add()函数
#当向集合内增加已经存在的数据时,不进行任何操作
#add()只能向集合里增加单一数据,如果增加其他的比如一个列表,会报错
set1 = {"11", "22", "33", "44", "55"}
print(set1) #输出 {'11', '55', '33', '44', '22'}
set1.add("11")
print(set1) #输出 {'11', '55', '33', '44', '22'}
set1.add(66)
print(set1) #输出 {'11', '66', '55', '33', '44', '22'}
#set1.add([11, 33]) #报错 TypeError: unhashable type: 'list'
#2.1.2 update()函数, 增加的是序列,不能增加单一数据,否则会报错
set1.update([11, 13, 21, 22, 31, 32, 33])
print(set1) #输出 {32, '22', 33, '55', 11, 13, '33', '44', '11', '66', 21, 22, 31}
#set1.update(22) #报错 TypeError: 'int' object is not iterable
set1 = {"11", "22", "33", "44", "55"}
#2.2删除
#2.2.1 remove() ,删除集合中指定数据,如果不存在则报错
print(set1) #输出 {'33', '11', '55', '22', '44'}
#注意,这里 set1.remove(11),这样删除会报错 KeyError: 11
set1.remove("11") #输出 {'33', '55', '22', '44'}
print(set1)
#set1.remove("11") #报错 KeyError: '11'
#2.2.2 discard(), 删除集合中指定数据,如果不存在也不报错
print(set1) #输出 {'44', '55', '33', '22'}
set1.discard('22')
print(set1) #输出 {'44', '55', '33'}
set1.discard('22') #不报错
print(set1) #输出 {'44', '55', '33'}
#2.2.3 pop()函数, 随机删除集合中的数据, 并返回这个数据
print(set1) #输出 {'33', '44', '55'}
del_data = set1.pop()
print(del_data) #输出 33
print(set1) #输出 {'44', '55'}
#2.3 查找
#in 和 not in
#2.3.1 in 判断数据是否在集合,在的话返回True, 不在的话返回 False
set1 = {"11", "22", "33", "44", "55"}
print("11" in set1) #输出 True
print(11 in set1) #输出 False