说说Python集合的那些事儿
大家好,我是IT共享者,人称皮皮。今天给大家来捋一捋Python集合。
一、什么是集合?
集合(set)和字典(dict)类似,它是一组 key 的集合,但不存储 value。集合的特性就是:key 不能重复。
二、集合常用操作
1. 创建集合
set 的创建可以使用 {}
也可以使用 set 函数:
s1 = {'a', 'b', 'c', 'a', 'd', 'b'} # 使用 {}
print(s1)
(['a', 'c', 'b', 'd'])
s2 = set('helloworld') # 使用 set(),接收一个字符串
print(s2)
set(['e', 'd', 'h', 'l', 'o', 'r', 'w'])
s3 = set(['.mp3', '.mp4', '.rmvb', '.mkv', '.mp3']) # 使用 set(),接收一个列表
print(s3)
set(['.mp3', '.mkv', '.rmvb', '.mp4'])

2. 遍历集合
s = {'a', 'b', 'c', 'a', 'd', 'b'}
for e in s:
print(e)

3. 添加元素
add()
方法可以将元素添加到 set 中,可以重复添加,但没有效果。
s = {'a', 'b', 'c', 'a', 'd', 'b'}
print(s)
set(['a', 'c', 'b', 'd'])
s.add('e')
print(s)
set(['a', 'c', 'b', 'e', 'd'])
s.add('a')
print(s)
set(['a', 'c', 'b', 'e', 'd'])
s.add(4)
print(s)
set(['a', 'c', 'b', 4, 'd', 'e'])
4. 删除元素
remove()
方法可以删除集合中的元素, 但是删除不存在的元素,会抛出 KeyError,可改用 discard()
。
例子:
s = {'a', 'b', 'c', 'a', 'd', 'b'}
print(s)
set(['a', 'c', 'b', 'd'])
s.remove('a') # 删除元素 'a'
print(s)
set(['c', 'b', 'd'])
s.remove('e') # 删除不存在的元素,会抛出 KeyError

s = {'a', 'b', 'c', 'a', 'd', 'b'}
print(s)
set(['a', 'c', 'b', 'd'])
s.remove('a') # 删除元素 'a'
print(s)
set(['c', 'b', 'd'])
s.discard('e') # 删除不存在的元素, 不会抛出 KeyError
三、交集/并集/差集
Python 中的集合也可以看成是数学意义上的无序和无重复元素的集合,因此,我们可以对两个集合作交集、并集等。
看看例子:
s1 = {1, 2, 3, 4, 5, 6}
s2 = {3, 6, 9, 10, 12}
s3 = {2, 3, 4}
print(s1 & s2 ) # 交集
set([3, 6])
print(s1 | s2) # 并集
set([1, 2, 3, 4, 5, 6, 9, 10, 12])
print(s1 - s2) # 差集
set([1, 2, 4, 5])
print(s3.issubset(s1)) # s3 是否是 s1 的子集
print(s3.issubset(s2)) # s3 是否是 s2 的子集
print(s1.issuperset(s3)) # s1 是否是 s3 的超集
print(s1.issuperset(s2)) # s1 是否是 s2 的超集
四、总结
本文主要介绍了Python的另外一种形式(集合),通过讲解集合中如何去创建集合,遍历集合,解释了两种常见的集合操作,添加元素和删除元素。最后通过一个小项目,介绍了集合之间中的三种关系。希望能够帮助大家更好的学习。
想学习更多Python网络爬虫与数据挖掘知识,可前往专业网站:http://pdcfighting.com/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
2020-04-22 教你一招另辟蹊径抓取美团火锅数据
2018-04-22 CDH安装系统环境准备——系统版本和安装包下载地址指南