Python 集合
AI-摘要
小嗷犬 GPT
AI初始化中...
介绍自己 🙈
生成本文简介 👋
推荐相关文章 📖
前往主页 🏠
前往爱发电购买
Python 集合
小嗷犬集合及基本操作
集合类型与数学中集合的概念是一致的。它是由 0 个或多个唯一的、不可变的元素构成的无序组合。和字典一样,集合也是通过一对花括号{}
来标识的。
集合中的元素是不可重复的, 常常用于检查某个元素是否存在。
集合的元素不能是可变类型,例如列表、字典或者集合本身。
虽然集合中的元素必须是不可变类型,但是集合本身是可变的,可以添加、删除和清空集合元素。
创建集合
可以使用set()
函数创建一个集合, 或者用花括号将一系列以逗号隔开的元素包裹起来创建。
1 |
|
在 Python 中使用{}
创建的是空字典, 而不是空集合。 创建空集合应该使用set()
函数。
1 |
|
利用集合去重
集合的重要特征之一就是元素不重复。 因此, 当使用set()
函数将其他可迭代对象转换为集合时,该函数会自动过滤掉重复元素。
1 |
|
交集、并集、差集和补集
除了判断成员资格和去重外,集合还有四个常用的操作:交集(&
)、并集(|
)、差集 (–
)、补集(^
), 操作逻辑与数学定义相同。A、B 两个集合的运算示意图如图所示, 阴影部分是运算结果。
1 |
|
集合的常用方法
集合也可以通过内置函数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 |
添加元素
与列表、字典一样, 集合是可变类型。 可以往集合中添加元素。 通过集合的add()
方法来实现。如果元素本身在集合中,则不添加。
1 |
|
删除元素
集合中有pop()
、discard()
和remove()
多个删除元素的方法。
1 |
|
集合推导式
与字典推导式类似, 集合推导式使用的也是花括号{}
。 不同的是, 集合推导式在for
关键字前的表达式结果是一个元素,而不是键值对。语法形式如下:
1 |
|
1 |
|
组合数据类型比较
到目前为止, 我们已经学习了 Python 中常见的几种组合数据类型:字符串、列表、 元组、字典和集合,如表所示。它们之间有许多的相同点和不同点。
类型 | 标识符 | 可变 | 有序 | 元素 |
---|---|---|---|---|
字符串 | ''或"" | 字符 | ||
列表 | [ ] | 任意类型 | ||
元组 | () | 任意类型 | ||
字典 | {} | 键值对,键为不可变类型且不重复 | ||
集合 | {} | 任意不可变类型,不重复 |
评论
隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果