Python 数据类型详解:集合(set)的定义与常用操作
本文详解 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))

二、集合元素的增、删、清
在实际开发中,通常需要动态修改集合内的元素。以下是核心操作方法及注意事项:
第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 的集合原生支持类数学集合论的交、并、差运算,也可进行子集判断。既可使用简洁的运算符快捷计算,也可调用对应方法进行逻辑判定。
- 交集:使用
&运算符或.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 数据类型集合 set 的定义、基础操作与数学运算的详细内容,更多关于 Python 数据结构与数据处理技巧的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









