Python--基本的对象类型(集合)
以下方法均在python解释器中进行了测试,读者复制代码时,记得去掉注释符。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#!/usr/bin/env python # -*- coding: utf-8 -*- # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # 第一类集合:可变集合 # ******************通过set类创建的对象****************** # 1:集合的格式:使用大括号 { } 或者 set() 函数创建集合 # 定义:1、不同元素组成;2、无序;3、集合中的元素必须是不可变类型(数字,字符串,元组) # 注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典 # se1 = {11,"qwer",(11,22,)} # se2 = set((11,22,33)) #set创建集合时,括号内必须是可迭代的对象 # print(se1,se2) # 2:集合是可迭代的 # se = set("qeyqi2321oi3h") # for i in se: # print(i) # 3:集合其他方法in,not in ,len() # se = set("qeyqi2321oi3h") # print(2 in se) # print(len(se)) # ******************set类中提供的方法****************** # 1:add()方法:向集合添加元素 # se = {11,"qwer",(11,22,)} # s = se.add(2222) #括号内必须是可哈希的对象 # print(se) # 2:clear()方法:清空集合 # se = {11,"qwer",(11,22,)} # print(se) # se.clear() # print(se) # 3:copy()方法:浅拷贝集合 # se1 = {11,"qwer",(11,22,)} # se2 = se1.copy() # print(se2) # 4:集合内元素的删除 # s = {11,"22",("qwer",5,6,),"qwer"} # s1 = s.remove(11) #remove删除特定元素,要删除的元素不存在时,会报错;无返回值 # print(s,s1) # # s = {11,"22",("qwer",5,6,),"qwer"} # s2 = s.discard(11) #discard删除特定元素,要删除的元素不存在时,不会报错;无返回值 # print(s,s2) # # s = {11,"22",("qwer",5,6,),"qwer"} # s.pop() #随机删除一个元素,有返回值 # print(s,s.pop()) # 5:update()方法:用于修改当前集合,可以添加新的元素或集合到当前集合中 # 如果添加的元素在集合中已存在,则该元素只会出现一次,重复的会忽略 # se1 = set("123456") # print(se1) # se2 = set("qwerdf") # se2.update(se1) # print(se2) # 6:issubset()方法:判断se2是不是se1的子集,并返回bool值 # se1 = {11,22,33} # se2 = {11,22} # print(se2.issubset(se1)) # 7:issuperset()方法:判断se1是不是se2的父集,并返回bool值 # se1 = {11,22,33} # se2 = {11,22} # print(se1.issuperset(se2)) # 8:isdisjoint()方法:判断两个集合有没有交集,没有返回True # se1 = {11,22,33} # se2 = {11,22} # print(se1.isdisjoint(se2)) # se3 = {44,55} # se4 = {66,77} # print(se3.isdisjoint(se4)) # ******************集合中常用的关系运算****************** # 1:求集合的交集 # se1 = {1,2,"hello",3} # se2 = {3,4,5,"hello"} # print(se1,se2) # print(se1.intersection(se2)) # print(se1&se2) # se2.intersection_update(se1) #intersection_update方法:求交集,并且用交集覆盖se2 # print(se1,se2) # 2:求集合的并集 # se1 = {1,2,"hello",3} # se2 = {3,4,5,"hello"} # print(se1,se2) # print(se1.union(se2)) # print(se1|se2) # 3:求集合的差集 # se1 = {1,2,"hello",3} # se2 = {3,4,5,"hello"} # print(se1,se2) # print(se1.difference(se2)) #在se1去掉和se2相同的部分后剩余的部分 # print(se1-se2) # print(se2.difference(se1)) #在se2去掉和se1相同的部分后剩余的部分 # print(se2-se1) # se2.difference_update(se1) #difference_update方法:求并集,并且用并集覆盖se2 # print(se1,se2) # 4:求集合的交叉补集 # se1 = {1,2,"hello",3} # se2 = {3,4,5,"hello"} # print(se1,se2) # print(se1.symmetric_difference(se2)) #返回两个集合中不重复的元素集合,即会移除两个集合中都存在的元素。 # print(se1^se2) # se2.symmetric_difference_update(se1) #symmetric_difference_update方法:求交叉补集,并且用交叉补集覆盖se2 # print(se1,se2) # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # 第二类集合:不可变集合 # 注意:1:不可变集合它不可以增加删除集合中的元素,该集合中的内容是不可改变的,类似于字符串、元组 # 2:不可变集合,除了内容不能更改外,其他功能及操作跟可变集合set一样 # s1 = frozenset("qwer1234") #传入序列,生成不可变集合 # s2 = frozenset({11,22,33}) #传入集合,生成不可变集合 # s3 =frozenset() #定义空的不可变集合
为了将来做自己想做的事情努力.......