python中的set集合详解
一、集合简介
- 集合的表现形式:set
- 集合与列表很相似,区别如下:
。 集合中的元素必须为不可变对象
。 集合中不能出现重复的元素,即若有重复的元素则不会出现
。 集合中的元素是无序的 -
集合的用途:
1、可以运用集合去重,方法为将列表加入到集合中,然后进行遍历,最后打印出去重后的结果即可;
- 2、运用集合可以进行关系测试,例如,求差集、并集。
二、集合的一些操作
2.1 set()
set() 函数可以用来创建集合
my_set = set({}) print(my_set, type(my_set)) #结果为 set() <class 'set'>
set() 函数可以将列表和字典转化为集合
注:若通过 set() 将字典转化为集合,转化后的集合只包含字典中的键,不会包含值
set1 = set([1, 2, 3]) set2 = set('hello') set3 = set({'姓名': 'zqc', '性别': '女'}) print(set1, type(set1)) print(set2, type(set2)) print(set3, type(set3)) #结果为 {1, 2, 3} <class 'set'> {'h', 'o', 'l', 'e'} <class 'set'> {'性别', '姓名'} <class 'set'>
2.2 通过索引取值
- 因为集合本身是无序的,所以不能直接通过索引取值
- 先将集合转化为列表,转化后的列表可以通过索取值
my_set = set([1, 2, 3]) print(list(my_set)[1]) #结果为 2
3.2 in、not in
- 判断指定元素是否在集合中
- 返回布尔类型
3.3 len()
- len() 用来获取集合长度,即集合中有几个元素
- 返回一个 int 类型
3.4 add()
- add() 用来向集合中添加一个元素
my_set = {11, 22, 33} my_set.add(44) print(my_set) #结果为 {33, 11, 44, 22}
3.5 update()
- update() 用来将一个集合中的元素添加到另一个集合中
my_set = {11, 22, 33} your_set = {44} my_set.update(your_set) print(my_set) #结果为 {33, 11, 44, 22}
3.6 pop()
- pop() 用来随机删除集合中的一个元素
- pop() 有返回值
my_set = {11, 22, 33} d = my_set.pop() print(d) print(my_set) #结果为 33 {11, 22}
3.7 remove()
- remove() 用来删除一个指定的元素
my_set = {11, 22, 33} my_set.remove(22) print(my_set) #结果为 {33, 11}
3.8 clear()
- clear() 用来清空集合
my_set = {11, 22, 33} my_set.clear() print(my_set) #结果为 set()
三、集合的运算
3.1 交集 &
- 返回一个集合
- 所有集合公共的区域
my_set = {1, 2, 3, 4, 5} your_set = {3, 4, 5, 6, 7} print(my_set & your_set) #结果为 {3, 4, 5}
3.2 并集 |
- 返回一个集合
- 所有集合除去不可重复后的相加
my_set = {1, 2, 3, 4, 5} your_set = {3, 4, 5, 6, 7} print(my_set | your_set) #结果为 {1, 2, 3, 4, 5, 6, 7}
3.3 差集 -
- 返回的是一个集合
- 集合除去公共的部分
my_set = {1, 2, 3, 4, 5} your_set = {3, 4, 5, 6, 7} print(my_set - your_set) print(your_set - my_set) #结果为 {1, 2} {6, 7}
3.4 异或 ^
- 返回的是一个集合
- 异或为不相交的部分
my_set = {1, 2, 3, 4, 5} your_set = {3, 4, 5, 6, 7} print(my_set ^ your_set) #结果为 {1, 2, 6, 7}
3.5 集合间的关系 ≤、<、≥、>
- 判断一个集合是否是另一个集合的子集:<=
- 判断一个集合是否是另一个集合的真子集:<
- 判断一个集合是否是另一个集合的超集:>=
- 判断一个集合是否是另一个集合的真超集:>
- 返回布尔类型
去期待陌生,去拥抱惊喜。
分类:
Python--基础语法
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器