Python 数据类型详解:集合(set)的定义与常用操作

Oliver
Oliver
发布时间:2026-10-12 | 4人浏览过
原创

本文详解 Python 中集合(set)的定义特性与核心操作方法。通过实际代码演示初始化构建、add/update 添加、remove/discard/pop 删除及 clear 清空等步骤,并完整展示交集、并集、差集与子集判断等数学运算用法,帮助开发者高效实现数据去重与逻辑运算。

一、集合的特性与创建

集合(set)是 Python 内置的无序、不重复元素容器。其核心特性包括:

  • 自动去重:相同元素只会保留一份,常用于数据清洗与过滤。
  • 元素不可变:集合内部存储的元素必须是可哈希(Hashable)的对象,例如整数、字符串、元组,不能直接包含列表或字典等可变类型。
  • 整体无序:元素在底层结构中没有固定索引顺序,不支持按位置切片。

创建集合主要有两种语法。使用大括号 {} 包裹数据,或使用内置函数 set()。若需创建一个空集合,必须严格使用 set(),因为 {} 会被解析为空字典。该函数的参数可以是任意可迭代序列(如列表、元组、字符串)。

lists = [1, 3, 5, 7, 3, 4, 6, 2, 7, 9]
print(set(lists))
Python列表转集合自动去重运行结果
运行代码可见重复数字 3、7 已被合并,仅保留唯一值

二、集合元素的增、删、清

在实际开发中,通常需要动态修改集合内的元素。以下是核心操作方法及注意事项:

第1步:添加元素(add 与 update)

入口为集合变量调用对应方法。当目标是单一对象时,使用 add() 将其作为整体存入集合;当需要批量加入字符或拆分数据时,使用 update() 接收可迭代对象并将元素拆解后逐个存入,过程会自动过滤已存在的重复项。

第2步:安全移除元素(remove、discard 与 pop)

⚠️ 风险提醒:部分删除操作在目标元素不存在时会抛出异常,使用前建议结合业务逻辑确认元素存在性。

  • remove() 按指定值精确删除,若键值缺失将触发 KeyError 报错。
  • discard() 同样按值删除,但找不到时静默跳过,适合不确定元素是否存在的场景。
  • pop() 会移除并返回集合中的任意一个元素。由于集合无序,无法预测具体位置;若集合为空则直接报错。

第3步:清空与销毁变量(clear 与 del)

clear() 清除集合内所有元素,保留对象引用供后续重新赋值;del 语句则直接从当前作用域的命名空间中移除集合变量本身,后续再次访问将报 NameError。

以下代码演示上述操作的连续执行效果:

set1 = {"迪丽热巴", "古力娜扎", "易烊千玺", "欧阳娜娜"}
set1.add("吉克隽逸")
print(set1)
set1.update("杨魏玲花")
print(set1)
print(set1.pop())
set1.remove("欧阳娜娜")
print(set1)
set1.discard("古力娜扎")
print(set1)
set1.clear()
print(set1)
Python集合增删改查操作输出结果
控制台输出验证各方法执行后的集合状态变化

三、集合间的数学运算

Python 的集合原生支持类数学集合论的交、并、差运算,也可进行子集判断。既可使用简洁的运算符快捷计算,也可调用对应方法进行逻辑判定。

  • 交集:使用 & 运算符或 .intersection() 方法,返回两个集合共有的元素。
  • 并集:使用 | 运算符或 .union() 方法,合并两个集合的所有不重复元素。
  • 差集:使用 - 运算符或 .difference() 方法,返回存在于左侧集合但不存在于右侧集合的元素。
  • 子集判断:使用 < 运算符或 .issubset() 方法,判断左侧是否为右侧的真子集。

实际操作示例如下:

set1 = {7, 53, 72, 13, 64, 55}
set2 = {9, 55, 64, 109, 53, 2}
print(set1 & set2)
print(set1.intersection(set2))
print(set1 | set2)
print(set1.union(set2))
print(set1 - set2)
print(set1.difference(set2))
print(set1 < set2)
print(set1.issubset(set2))
Python集合交并差与子集运算结果
对比符号运算符与方法调用结果,二者逻辑完全等价

四、总结

以上就是 Python 数据类型集合 set 的定义、基础操作与数学运算的详细内容,更多关于 Python 数据结构与数据处理技巧的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表