4.4 集合
集合也是 Python 的数据结构之一,集合是无序可变序列,和字典一样,使用一对大括号{}作为界定符,元素之间通过,相隔,并且集合中的每一个元素都是唯一的,你可以理解为集合为没有值(value),只有键(key)的字典,字典中的元素只能为不可变的数据类型,如:数字,字符串,元组;像列表,字典,集合这种可变的数据类型不可以作为集合的元素
4.4.1 集合的创建与删除
🚩字典的创建:我们可以直接使用赋值运算符 “=”,直接把一个集合常量(用{}表示集合,字典的元素之间用,隔开)赋值给变量,即:
# 博主:辰chen # 博客地址:https://chen-ac.blog.csdn.net/ # 开发时间:2021/12/13 19:28 # 欢迎大家关注AIoT相关博客~ a = {1, 2, (3, 4), '567'} print(a, type(a))
我们还可以使用 set() 函数去创建一个集合:
# 博主:辰chen # 博客地址:https://chen-ac.blog.csdn.net/ # 开发时间:2021/12/13 19:28 # 欢迎大家关注AIoT相关博客~ a = set(range(10)) print(a, type(a)) print(set([1, 2, 3, 4, 5])) # 把列表转为集合 # 如果列表中有重复的元素: print(set([1, 1, 1])) # 自动去重 print(set((3,))) # 把元组转为结合 print(set('Python')) # 将字符串转为集合 # 因为集合是无序的,故输出结果不一定是 Python 的顺序 ''' 创建一个空集合: 我们如果按照以往的思维的话,会发现我们创建的其实是一个字典 ''' b = {} print(type(b)) print(('--------创建一个空集合--------')) c = set() print(type(c))
我们用 del 指令可以删除集合:
# 博主:辰chen # 博客地址:https://chen-ac.blog.csdn.net/ # 开发时间:2021/12/13 19:43 # 欢迎大家关注AIoT相关博客~ a = set(range(10)) del a print(a)
4.4.2 集合元素的增加与删除
1️⃣ 判断元素是否在集合中可以用 in 和 not in:
# 博主:辰chen # 博客地址:https://chen-ac.blog.csdn.net/ # 开发时间:2021/12/13 22:31 # 欢迎大家关注AIoT相关博客~ a = set(range(10)) print(0 in a) print(0 not in a)
2️⃣ 集合元素增加:我们可以使用 add() 方法增加新的元素,如果元素已经存在则忽略这次操作;update() 方法可以将另一个集合中的元素到当前的集合之中,并且有自动去重的功能
# 博主:辰chen # 博客地址:https://chen-ac.blog.csdn.net/ # 开发时间:2021/12/13 22:31 # 欢迎大家关注AIoT相关博客~ a = set(range(10)) print(a) a.add(11) print(a) b = set(range(5, 15)) a.update(b) print(a)
3️⃣ 集合对象的删除:删除集合的对象我们介绍四个方法:remove(),discard(),pop(),clear(),我们用代码去逐个讲解:
# 博主:辰chen # 博客地址:https://chen-ac.blog.csdn.net/ # 开发时间:2021/12/14 12:33 # 欢迎大家关注AIoT相关博客~ a = set(range(10)) print(a) a.remove(0) print(a) a.remove(10) print(a)
# 博主:辰chen # 博客地址:https://chen-ac.blog.csdn.net/ # 开发时间:2021/12/14 12:33 # 欢迎大家关注AIoT相关博客~ a = set(range(10)) print(a) a.discard(0) print(a) a.discard(10) print(a)
# 博主:辰chen # 博客地址:https://chen-ac.blog.csdn.net/ # 开发时间:2021/12/14 12:33 # 欢迎大家关注AIoT相关博客~ a = set(range(10)) print(a) # pop() 中不可以传参数,pop()删除的是第一个元素 a.pop() print(a) a.pop() print(a)
# 博主:辰chen # 博客地址:https://chen-ac.blog.csdn.net/ # 开发时间:2021/12/14 12:33 # 欢迎大家关注AIoT相关博客~ a = set(range(10)) print(a) a.clear() print(a) for i in range(10): print(i in a, end = ' ')