# 由不同的元素组成的集合,集合中是一组无序排列的可hash值,可以作为字典的值 # 1.不同元素组成 # 2.无序 # 3.集合中元素必须不可变类型 # 4.集合可以用来去重,但是是无序的 # S = {'sb',1,2,3,4,5,565656,4,4,4} # print(S) # # for i in S: # print(i) # # # n = set('hello') # # print(n) # 集合的方法 # 1.add添加方法 # S.add('3') # print(S) # 2.clear清空方法 # S.clear() # print(S) # 3.copy方发=法 # S.copy() # print(S) # 4.pop方法随机删除 # S.pop() # print(S) # 5.指定元素删除 # S.remove('sb') # S.remove('helloooooo') #删除不存在的元素会报错 # print(S) # 6.discard删除,删除不存在的元素不会报错 # S.discard('sb') # print(S) # 集合的运算,关系运算 # python_l = ["lcg","szw","zjw","lcg"] # # linx_l = ["lcg","szw","alex","sb"] # 需求,统计出既报了python课程,又报了linx课程的人,求共同的部分,也就是交集 # python_and_linx_l = [] #定义一个空列表 # for p_name in python_l: # if p_name in linx_l: # python_and_linx_l.append(p_name) # print(python_and_linx_l) # p_s = set(python_l) # l_s = set(linx_l) # print(p_s,l_s) # 1. 求交集的方法intersection,还有一个符号也是可以求交集"&" # print(p_s.intersection(l_s)) # print(p_s&l_s) # 2.求并集,两个集合并到一块去,就是找不相同的,重复的会去掉 # print(p_s.union(l_s)) # print(p_s|l_s) # 3.求差集,相减,存在于左边的,不存在于右边的,或者存在于右边的,不存在于右边的 # print("差集",p_s-l_s) # print("差集",l_s - p_s) # print("差集",p_s.difference(l_s)) # print("差集",l_s.difference(p_s)) # 4.交叉补集,把两个集合放在一起,找两个集合中都没有的 # print("交叉补集",p_s.symmetric_difference(l_s)) # print('交叉补集',p_s^l_s) # 5.difference_update(l_s)做完差集直接更新 # python_l = ["lcg","szw","zjw","lcg"] # linx_l = ["lcg","szw","alex","sb"] # p_s = set(python_l) # l_s = set(linx_l) # print(p_s,l_s) # p_s = p_s-l_s # p_s.difference_update(l_s) # print(p_s) # 6.isdisjoint 如果两个集合中没有交集,就返回true # s1 = {1,3} # s = {4,5} # print(s1.isdisjoint(s)) # 6.issubset判断两个集合是不是子集 # s2 = {2,3} # s3 = {1,2,3} # print(s2.issubset(s3)) # s2是s3的子集 # 7.判断两个集合哪个是父集 # print(s3.issuperset(s2)) # s3是s2的父集 # 8.update更新 # s2.update(s3) # print("update",s2) # 这个叫做不可变类型 s = frozenset('hello') print(s) names = ["alex",'alex','wupeiqi'] s = set(names) print(s) names = list(set(names)) print(names)