文章目录
一、集合 (set)
在python中,集合是一个无序的不重复元素序列,因此集合通常用来去除重复的元素,创建集合可以使用set函数或者大括号{},两个集合之间可以做并集,交集,差集操作。
集合和列表非常的相似,不同点有3点:
- 集合中只能存储不可变对象
- 集合中存储的对象是无序的(不是按照元素的插入顺序保存的)
- 集合中不能出现重复的元素
集合中的元素有3个特性:
- 确定性:给定一个集合,任何对象是不是这个集合的元素是确定的了。
- 互异性:集合中的元素一定是不同的。
- 无序性:集合中的元素没有固定的顺序。
1.1 创建集合(set)
创建集合使用{}
或set()
, 但是如果要创建空集合只能使用set()
,因为{}
用来创建空字典。
set_1 = {
10, 20, 30, 40, 50}
print(set_1) # {40,10,20,50,30}
set_2 = {
10, 30, 20, 10, 30, 40, 30, 50}
print(set_2) # {40,10,20,50,30}
set_3 = set('abcdefg')
print(set_3) # {'c','e','a',,'f','g','b','d'}
set_4 = set()
print(type(set_4)) # 空集合
set_5 = {
}
print(type(s5)) # dict
set_6 = {
'python', 32, 983.9, 'python', 'php'}
print(set_6) # {32, 'php', 'python', 983.9}
-
集合里数据不会重复,即便set_6在创建时,内部有两个’python’ 字符串,在赋值语句执行结束后,set_6里将只有1个’python’
-
创建一个空集合,一定要用set(),而不是{}, {}用来表示空字典。
-
集合里每个数据之间用逗号分隔,集合里的数据必须是可hash的,因此,集合里不能有字典,集合,列表这三种数据。
1.2 set()函数转换序列及字典
- set()函数可以将序列及字典转换为集合。
set_7 = set ([1,2,3,4,5,2,2])
print(set_7,type(set_7)) # {1, 2, 3, 4, 5} <class 'set'>
set_8 = set({
'a':1,'b':2,'c':3})
print(set_8,type(set_8)) # {'c', 'b', 'a'} <class 'set'>
如果使用set()将字典转换为集合的时候,只会包含字典的键
1.3 添加元素
1.3.1 add()
- add(),追加单一数据。
se = set()
se.add('python')
se.add('python')
se.add('php')
se.add('java')
print(se,len(se)) # {'java', 'php', 'python'} 3
因为集合有去重功能,所以,当向集合内追加的数据是当前集合已有数据的话,则不进行任何操作。上面的代码虽然添加了两次’python’,但最终集合中只有一个’python’。
1.3.2 update()
- update(), 追加的数据是序列。
s1 = {
10, 20}
s1.update([100, 200])
s1.update('abc')
print(s1)
# s1.update(100) # 报错
1.4 删除元素
1.4.1 remove()
- remove(),删除集合中的指定数据,如果数据不存在则报错。
set = {
10, 20}
set.remove(10)
print(set) # {20}
set