集合的特点:去重、无序,因此无法通过下标取值。
1. 定义集合
s = set() #定义空的集合 s2 = {'1','2','3'} # 不是key -value形式的话就是集合,不是字典 s3 ={'1','2','3','5','3'} print(s3) #打印出来后会去除重复的值 {'3', '1', '5', '2'} ls = [1,2,3,4,5,6,5] set(ls) #将list强制转换成集合,可以进行去重 print(set(ls)) s4 = 'abcdfegabc' set(s4) # set可以进行集合运算 print(set(s4)) #{'c', 'f', 'b', 'g', 'e', 'a', 'd'}
2. 操作集合
增加&删除:
s3 ={'1','2','3','5'} s3.add('1') #向集合中添加值,如果是重复的话还是会把重复的去除,因为集合无序所以输出时各个值的位置不定,可能为 {'2', '3', '1', '5'} print(s3) s3.remove('1') #删除值 print(s3) s3.pop()#随机删一个值 print(s3)
交集&并集&差集&对称差集:
s2 = {'1','2','3'} s3 ={'1','2','5'} #交集 a = s2.intersection(s3) #取交集, s2.intersection(s3) 与 s3.intersection(s2) 一样 print(a) #{'2', '1'} b = s2.intersection(s3) print(b) #{'2', '1'} print(s2 & s3) #取交集 {'2', '1'} #并集 print(s2.union(s3)) #取并集 {'2', '5', '3', '1'} print(s2|s3)#取并集 {'2', '5', '3', '1'} #差集 print(s2.difference(s3)) #取s2中存在,s3 不存在的,#取差集 {'3'} print(s2 - s3) #取差集 {'3'} print(s3 - s2) # {'5'} #对称差集,取s2, s3 中不同时存在的元素 print(s2 ^ s3) # {'3', '5'}
print(s2.symmetric_difference(s3))#对称差集,就是把两个集合中相同的去掉