一些集合的基本操作
set()的集合表示方法
创建集合
1
2
3
| #可以用{}或者set函数创建集合
type({"Deng"}) #class="set"
s = set("Deng") #class="set"
|
集合的无序性
1
2
3
4
5
6
| #创建一个集合并且按字符输出可以发现集合是无序的!
s = set("Deng")
D in s #True
d not in s #True
for each in s:
print(each) # n e D g 我们可以发现输出的结果是无序的,证明了集合的无序性!
|
集合会自动去重
1
| print(set([1,2,3,3,4,4])) #[1,2,3,4]就把多出来的3和4去掉了!
|
判断两个集合之间是否有关系
1
2
3
4
5
6
| #先创建第一个集合
D = set("Deng")
#使用isdisjoint方法判断两个集合之间是否有关系,具体如下
s.isdisjoint(set("python")) #False代表两个集合之间是有相关的!判断的依据是两个集合之间有相关的元素重合,那么可见有n重合,所以两个集合之间是有相关的及false
#再判断JAVA
s.isdisjoint(set("JAVA")) #True代表两个集合无关
|
检测两个集合是否有子集关系
1
2
3
4
| #使用issubset方法,判断前面是否为后面的子集!
s = set("Deng")
#判断s是否为后面的子集
s.issubset(set("DengGaozheng")) #True说明s正是DengGaozheng的子集!
|
检测两个集合是否有超集关系
1
2
3
4
| #用issuperset对于A和B来说,A中所有元素都在B中有出现,那么说明B是A的超集!
A = set("Deng")
B = set("DengGaozheng")
B.issuperset(A) #True说明B是A的超集!
|
两个集合之间使用交集
1
2
3
| #intersection方法
s = set("Deng")
s.intersection("De") #"De"
|
两个集合之间使用并集
1
2
3
| #union方法
s = set("Deng")
s.union(set("Gaozheng")) #"DengGaozheng"
|
两个集合之间使用差集
1
2
3
| #difference方法,差集即存在于一个集合而不存在于另一个集合的元素
s = set("DengGao")
s.difference("Deng") #"Gao"存在于s中而不存在于"Deng"中
|
管道符
| 管道符的作用是 把 管道符左边的的输出 当做右边命令后面待处理的结果。相当于并集的作用
1
2
| s = "Deng"
s | "Gao" | set("zheng") #这串代码相当于s并"Gao"并set("zheng"),结果是"DengGaozheng"
|
专属于set的方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| #update()用来在set创建的集合里面更新元素
s = set("Deng")
s.update("Gao")
print(s) #["Deng","G","a","o"]
#add()用于添加元素
s = set("Deng")
s.add("Gao")
print(s) #"DengGao"
#update和add都可以添加元素,但是区别在于update添加字符串时添加的是单个字符,add添加字符串时添加的是字符串。
#用remove方法删除集合中的元素,如果删除了不存在的元素,那么会抛出异常
s = ['D','e','n','g']
s.remove("D") #['e','n','g']
#pop方法用于随机从集合中弹出一个元素(有点出栈的感觉)
s = ['D','e','n','g']
s.pop() #'e'
s.pop() #'g'
|
frozenset()的集合表示方法
创建frozenset集合
1
2
3
| #创建frozenset集合
s = frozenset("Deng")
type(s) #class = frozenset
|
可哈希
1
2
3
4
5
6
7
8
9
10
11
12
| #整数哈希值:对于整数来说,哈希值永远等于自身的值
hash(1) #1
hash(1.0) #1.0
#列表是不可哈希的
hash([1,2,3]) #error!
#哈希配合frozenset可以实现嵌套的集合,这在set里面是实现不了的!
x = {1,2,3}
x = frozenset(x)
y = {x,4,5}
print(y) #{forzenset({1,2,3}),4,5}
|