Python 集合

简介: 到目前为止, 我们已经学习了 Python 中常见的几种组合数据类型:字符串、列表、 元组、字典和集合,如表所示。集合类型与数学中集合的概念是一致的。它是由 0 个或多个唯一的、不可变的元素构成的无序组合。虽然集合中的元素必须是不可变类型,但是集合本身是可变的,可以添加、删除和清空集合元素。与列表、字典一样, 集合是可变类型。函数创建一个集合, 或者用花括号将一系列以逗号隔开的元素包裹起来创建。集合中的元素是不可重复的, 常常用于检查某个元素是否存在。集合的元素不能是可变类型,例如列表、字典或者集合本身。
✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。
🍎个人主页: 小嗷犬的博客
🍊个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。
🥭本文内容:Python 集合

1.集合及基本操作

集合类型与数学中集合的概念是一致的。它是由 0 个或多个唯一的、不可变的元素构成的无序组合。和字典一样,集合也是通过一对花括号 {}来标识的。

集合中的元素是不可重复的, 常常用于检查某个元素是否存在。

集合的元素不能是可变类型,例如列表、字典或者集合本身。

虽然集合中的元素必须是不可变类型,但是集合本身是可变的,可以添加、删除和清空集合元素。

1.1 创建集合

可以使用 set()函数创建一个集合, 或者用花括号将一系列以逗号隔开的元素包裹起来创建。
language = set(['C', 'C++', 'Java', 'Python'])
print(language)
在 Python 中使用 {}创建的是空字典, 而不是空集合。 创建空集合应该使用 set()函数。
print(type({}))

1.2 利用集合去重

集合的重要特征之一就是元素不重复。 因此, 当使用 set()函数将其他可迭代对象转换为集合时,该函数会自动过滤掉重复元素。
print(set('我是小嗷犬,喜欢嗷嗷嗷'))

1.3 交集、并集、差集和补集

除了判断成员资格和去重外,集合还有四个常用的操作:交集( &)、并集( |)、差集 ( )、补集( ^), 操作逻辑与数学定义相同。A、B 两个集合的运算示意图如图所示, 阴影部分是运算结果。
集合运算
language1 = {'C', 'C++', 'Java', 'Python'}
language2 = {'C', 'C++', 'C#', 'Golang'}
print(language1 | language2)
print(language1 - language2)
print(language1 & language2)
print(language1 ^ language2)

2.集合的常用方法

集合也可以通过内置函数 len()得到元素个数, 通过 in检查某个元素是否存在, 通过 copy()方法复制集合。除此之外,还有一些特有的方法,如表所示。
函数或方法 描述
S.add(x) 如果数据项x不在集合S中,将x增加到s
S.clear() 移除S中所有数据项
S.copy() 返回集合S的一个拷贝
S.pop() 随机返回集合S中的一个元素,如果S为空,产生KeyError异常
S.discard(x) 如果x在集合S中,移除该元素;如果x不在,不报错
S.remove(x) 如果x在集合S中,移除该元素;不在,产生KeyError异常
S.isdisjoint(T) 如果集合S与T没有相同元素,返回True
len(S) 返回集合S元素个数
x in S 如果x是S的元素,返回True,否则返回False
x not in S 如果x不是S的元素,返回True,否则返回False

2.1 添加元素

与列表、字典一样, 集合是可变类型。 可以往集合中添加元素。 通过集合的 add()方法来实现。如果元素本身在集合中,则不添加。
language = {'C', 'C++', 'Java', 'Python'}
language.add('C')
print(language)
language.add('C#')
print(language)

2.2 删除元素

集合中有 pop()discard()remove()多个删除元素的方法。
language = {'C', 'C++', 'Java', 'Python'}
language.pop()
print(language)
language.discard('C#')
print(language)
language.remove('C++')
print(language)
language.remove('C#')

2.3 集合推导式

与字典推导式类似, 集合推导式使用的也是花括号 {}。 不同的是, 集合推导式在 for关键字前的表达式结果是一个元素,而不是键值对。语法形式如下:
{expression for item in iterable if condition}
l = ['C', 'C++', 'Java', 'Python']
language = {i for i in l if len(i) > 2}
print(language)

3.组合数据类型比较

到目前为止, 我们已经学习了 Python 中常见的几种组合数据类型:字符串、列表、 元组、字典和集合,如表所示。它们之间有许多的相同点和不同点。
类型 标识符 可变 有序 元素
字符串 ''或"" $×$ $\checkmark$ 字符
列表 [ ] $\checkmark$ $\checkmark$ 任意类型
元组 () $×$ $\checkmark$ 任意类型
字典 {} $\checkmark$ $×$ 键值对,键为不可变类型且不重复
集合 {} $\checkmark$ $×$ 任意不可变类型,不重复
目录
相关文章
|
11月前
|
安全 网络安全 文件存储
思科设备巡检命令Python脚本大集合
【10月更文挑战第18天】
343 1
思科设备巡检命令Python脚本大集合
|
5月前
|
存储 缓存 安全
Python frozenset 集合详解:不可变集合的终极指南
frozenset是Python中一个常被忽视但极具价值的不可变集合类型。本文深入解析其本质、操作方法与应用场景,揭示其通过不可变性带来的安全性与性能优势。从底层实现到实战案例,涵盖字典键使用、缓存优化及类型注解等高级场景。同时对比性能数据,提供最佳实践指南,并展望Python 3.11+中的优化。掌握frozenset,可为代码带来更强健性与效率,适合多种特定需求场景。
198 5
|
6月前
|
存储 人工智能 索引
Python数据结构:列表、元组、字典、集合
Python 中的列表、元组、字典和集合是常用数据结构。列表(List)是有序可变集合,支持增删改查操作;元组(Tuple)与列表类似但不可变,适合存储固定数据;字典(Dictionary)以键值对形式存储,无序可变,便于快速查找和修改;集合(Set)为无序不重复集合,支持高效集合运算如并集、交集等。根据需求选择合适的数据结构,可提升代码效率与可读性。
|
11月前
|
存储 缓存 API
解密 Python 集合的实现原理
解密 Python 集合的实现原理
185 11
|
12月前
|
存储 API 索引
Python 的集合是怎么实现的?
Python 的集合是怎么实现的?
108 9
|
11月前
|
存储 自然语言处理 数据处理
使用Python计算多个集合的交集详解
使用Python计算多个集合的交集详解
358 1
|
12月前
|
存储 索引 Python
Python常用数据结构——集合
Python常用数据结构——集合
220 3
|
数据采集 编解码 算法
Github | 推荐一个Python脚本集合项目
Github | 推荐一个Python脚本集合项目
276 5
|
索引 Python 容器
为什么Python中会有集合set类型?
为什么Python中会有集合set类型?
138 3
|
存储 索引 Python
五:《Python基础语法汇总》— 列表&元组&集合
本篇文章讲解了关于列表;元组和集合这三个基本数据类型的常用方法与函数。及同一性操作符;成员判断符;浅拷贝与深拷贝等多方面的知识点
105 4

热门文章

最新文章

推荐镜像

更多