文章目录
一. 创建集合
创建集合使用{}
或set()
, 但是如果要创建空集合只能使用set()
,因为{}
是用来创建空字典的。
s1 = {10, 20, 30, 40, 50}
print(s1)
s2 = {10, 30, 20, 10, 30, 40, 30, 50}
print(s2) # 结果和上面一样,集合天然去掉了重复的元素
s3 = set('abcdefg')
print(s3) # 每个字符一个单独元素
s4 = set()
print(type(s4)) # set
s5 = {} # 这不是集合 是字典
print(type(s5)) # dict
特点:
- 集合可以去掉重复数据;
- 集合数据是无序的,故不支持下标
s1 = {10, 20, 30, 40, 50}
s1[1] # 报错 集合无序,无法根据下标访问
s1.index(20) # 报错,集合无序,无法返回元素下标位置
s1.find(40) # 报错,集合无序,无法返回元素下标位置
- 如何判断集合中是否有指定元素? 下面查找模块有 就是 in/not in
二. 集合常见操作方法
2.1 增加数据
1) add()
- add()
s1 = {10, 20}
s1.add(100)
s1.add(10)
print(s1) # {100, 10, 20}
因为集合天然有去重功能,所以,当向集合内追加的数据是当前集合已有数据的话,则不进行任何操作。
2) update() 追加数据序列
数据序列是个大类型,包括: list,str,tuple,dict,set
- update(), 追加的数据是序列。
s1 = {10, 20}
# s1.update(100) # 报错
s1.update([100, 200]) # 必须是数据序列(str,list,tuple,dict,set)类型 本质是去遍历 然后一一加入
s1.update('abc')
print(s1)
2.2 删除数据
1) remove(x) [删除,数据不存在则报错]
- remove(),删除集合中的指定数据,如果数据不存在则报错。
s1 = {10, 20}
s1.remove(10)
print(s1) # {20}
s1.remove(10) # 报错
print(s1)
2) discard(x) [删除,数据不存在也不报错]
- discard(),删除集合中的指定数据,如果数据不存在也不会报错 (就相当于啥也没干就是了)。
s1 = {10, 20}
s1.discard(10)
print(s1) # {20}
s1.discard(10) # 不报错 相当于啥也没干
print(s1) # {20}
3) pop() [随机删除,返回该数]
- pop(),随机删除集合中的某个数据,并返回这个数据。
因为集合元素无序,所以只能说是随机删除
s1 = {10, 20, 30, 60, 50}
print(s1.pop())
print(s1)
2.3 查找数据 in/not in
- in:判断数据在集合序列
- not in:判断数据不在集合序列
s1 = {10, 20, 30, 40, 50}
print(10 in s1)
print(10 not in s1)
小结
-
创建集合
- 有数据集合
s1 = {数据1, 数据2, ...}
- 无数据集合
s1 = set()
-
常见操作
- 增加数据
- add()
- update()
- 删除数据
- remove()
- discard()
- 增加数据