集合的特性:无序性,唯一性,可嵌套性
1 #创建集合方式 2 s1={11,22}# 直接创建 3 s2=set()#创建空集合 4 s3=set([111,222,333])#转换为集合
1 #集合的方法 2 s1={11,22,33} 3 s2={22,33,44} 4 print(s1.difference(s2))#s1中存在s2中不存在 #输出 {11}
1 s1={11,22,33} 2 s2={22,33,44} 3 s3=s1.symmetric_difference(s2) 4 print(s3)#将s1与s2中不同的放一起组成新集合 5 #显示{11, 44}
s1={11,22,33} s2={22,33,44} #update方法,s1中存在s2中不存在的值赋给s1 s1.difference_update(s2)#覆盖s1 print(s1) #显示:{11}
s1={11,22,33} s2={22,33,44} # #删除元素 s2.discard(1111)#需要加参数,没有元素不报错 s1.remove(1111)#需要加参数,没有元素报错 res = s1.pop()#随机移除元素,不加参数,接受返回值(删除的元素
s1={11,22,33} s2={22,33,44} #求交集 s4=s1.intersection(s2)#求交集赋值给s4 s1.intersection_update(s2)#求交集覆盖s1 print(s4) print(s1) #显示{33, 22} {33, 22}
1 s1={11,22,33} 2 s2={22,33,44} 3 s1.isdisjoint(s2)#判断s1是否包含s2 返回True or False 4 5 #联合,并集 6 s5=s1.union(s2) 7 #显示{33, 22, 11, 44} 8 9 #给集合添加一个元素 10 s1.add(111)#增加一个元素 11 print(s1) 12 #显示{33, 11, 22, 111} 13 14 #给集合添加一组元素 15 li=[111,222,333] 16 s1.update(li)#添加一组元素,参数为可迭代的对象 17 print(s1) 18 #显示{33, 11, 333, 111, 22, 222}
1 #集合的综合使用,根据new_dict,更新old_dict 2 old_dict={ 3 '#1':8, 4 '#2':4, 5 '#4':2, 6 } 7 new_dict={ 8 '#1':4, 9 '#2':4, 10 '#3':2, 11 } 12 #将old_dict的key放入一个集合 13 s1=set(old_dict.keys()) 14 #将new_dict的key放入一个集合 15 s2=set(new_dict.keys()) 16 #找出old中存在,new中不存在的赋给del_old(需要删除的key) 17 del_old=s1.difference(s2) 18 print(del_old) 19 #找出old中不存在,new中存在的值赋给add_old 20 add_old=s2.difference(s1) 21 print(add_old) 22 23 #找出两个字典中相同的keys,则是需要更新 24 update_set=s1.intersection(s2) 25 26 #将要删除的集合元素转为列表 27 del_old=list(del_old) 28 29 #删除字典中的元素 30 del old_dict[str(del_old[0])] 31 32 #将需要添加的集合转为列表 33 add_old=list(add_old) 34 35 #添加新元素到old_dict中 36 old_dict[str(add_old[0])]=new_dict[str(add_old[0])] 37 38 #轮询更新相同key不同vlaues的元素 39 for i in update_set: 40 old_dict[i]=new_dict[i] 41 42 print(old_dict,new_dict) 43 44 45 #显示 46 {'#4'} 47 {'#3'} 48 {'#1': 4, '#3': 2, '#2': 4} {'#1': 4, '#3': 2, '#2': 4}