#集合:可变的数据类型,由不可变的数据类型组成(int,str ,tuple,Bool),无序,不重复 #集合用{}表示,因在字典中用{}表示空字典,所以集合的空集用set(),表示。 ‘‘‘ #如何把一个列表,变为一个集合 li=[1,2,3,3,4,4,5,5,6,6,6] set1=set(li) print(set1)#{1, 2, 3, 4, 5, 6} #那如何将一个列表转换成集合呢???? set2={1,2,3,4,5} lis=list(set2) print(lis)#[1, 2, 3, 4, 5] #集合的增:add 随机加入 update,也是随机加入, #不过他把加入的字符串拆解成一个个字符,再加入到集合中 set1={1,"hello",(1,2),False}#为什么把布尔值写成true在运行时就会消失呢??? set2=set1.add("Linda")#随机加入 {(1, 2), 1, False, ‘Linda‘, ‘hello‘} print(set1) set3=set1.update("LOVE") print(set1)#随机加入 {(1, 2), 1, False, ‘V‘, ‘E‘, ‘L‘, ‘hello‘, ‘Linda‘, ‘O‘} li=["hello"] #update与列表中的extend类似,都是把加入的字符串拆解成一个个字符,但唯一不同的是 #update 在集合中是随机的,而extend在列表中不是随机的 a=li.extend("Linda") print(li) #集合的删pop随机删除,但是似乎随机删除的那一个一旦确定,每次删除的都是那一个 #remove 按元素去删 #clear 把集合清空为空集合 set() #del 把集合直接删除, set1={1,"hello",False,4,5,6} set2=set1.pop() print(set1) #{1, 4, 5, ‘hello‘, 6} set3=set1.remove(1) print(set1) #{4, 5, 6, ‘hello‘} set4=set1.clear() print(set1) #set() set6={1,"hello",False,4,5,6} del set6 #删除整个字典,相当于这个字典没出现过 print(set6)#报错,因为set1被删除了,所以不存在了,错误原因就是set6没有命名 #集合的查:使用for循环去查询集合里面的元素 set1={1,"hello",False,4,5,6} for i in set1: print(i)#False 1 4 5 6 hello #集合的交集: set1 &set2 求两个集合都有的元素 set1={1,2,3,4,5} set2={4,5,6} set3=set1 &set2 print(set3)#{4,5} 这两个的结果都是相同的 intersection 是交叉路口,交集的意思 print(set1.intersection(set2))#{4,5} set1与set2的交集,或set2与set1的交集 print(set2.intersection(set1))#{4,5} 表达的意思都是一样的 #集合的并集 set1={1,2,3,4,5} set2={4,5,6} set3=set1 | set2 # | 相当于Linux中的管道连接符,把set1,set2的元素连接起来 print(set3) print(set2.union(set1))#union 是联合的意思 print(set1.union(set2))#{1, 2, 3, 4, 5, 6} #反交集:除了两个集合共有的元素外,剩下的元素 set1={1,2,3,4,5} set2={4,5,6} print(set1 ^ set2) #{1, 2, 3, 6} print(set1.symmetric_difference (set2)) #symmetric 对称的 difference 不同,把对称的去掉,余下的 #差集:set1-set2 表示的意思是set1独有的元素,而set2没有的元素 set1={1,2,3,4,5} set2={4,5,6} print(set1-set2)#{1, 2, 3} print(set1.difference(set2))#表示的是set1不同于set2的元素 {1, 2, 3} print(set2-set1)#{6} #子集与超集返回的都是Bool值 #子集:若set1中的所有元素都在set2中,则set1为set2的子集,而set2为set1的超级 set1={1,2,3,4,5} set2={1,2,3,4,5,6} print(set1<set2)#True print(set1.issubset(set2))#issubset 子集 判断一个集合的所有元素是否都包含于另一个集合 print(set2<set1)#False #超集:一个集合包含另一个集合的所有元素,那么这个集合就叫做超集 set1={1,2,3,4,5} set2={1,2,3,4,5,6} print(set2>set1)#True print(set2.issuperset(set1))#issuperset 父集 判断是否是父集 ‘‘‘ #把可变的集合变为不可变使用 set 可变---->frozenset----不可变 s={"HELLO","Linda"} print(s,type(s))#{‘Linda‘, ‘HELLO‘} <class ‘set‘> s1=frozenset(s) s2=frozenset("HAHA") print(s1,type(s1))#frozenset({‘Linda‘, ‘HELLO‘}) <class ‘frozenset‘> print(s2,type(s2))#frozenset({‘H‘, ‘A‘}) <class ‘frozenset‘>
原文:https://www.cnblogs.com/GZ1215-228513-Chichy/p/11334679.html