Python集合(set)定义、创建与常用操作详解

季宁
季宁
发布时间:2026-10-13| 6人浏览过
原创

本文详细介绍Python中set集合的核心特性与操作方法。涵盖两种定义方式(花括号与set函数)、不可变集合frozenset的使用,以及添加、删除、拷贝等基础函数。重点解析交集、并集、差集和对称差集等集合运算,并说明isdisjoint、issubset等判断函数的具体用法,帮助开发者高效处理去重与逻辑运算场景。

Python集合的基本概念与定义

集合(set)是Python中的一种内置数据类型。

  • 它具备无序性和可变性两个核心特征。
  • 集合内部由互不相同的元素组成,确保数据唯一性。
  • 构成集合的元素必须属于可哈希类型,通常指不可变类型,如整数、字符串或元组。

在Python中,创建集合主要有两种常用方式。

  • 第一种是使用花括号{}直接定义,例如通过{1,2,3,4,5}创建一个包含整数的集合。
  • 第二种方式是调用set()函数,传入一个可迭代对象作为参数,例如set("hello")会将字符串拆分为字符并去重后生成集合。
  • 此外,还可以使用frozenset()函数来创建不可变集合,一旦创建便无法修改其内容。

集合的基础增删改操作

掌握集合的基本函数是进行数据操作的基础,主要包括元素的添加、删除和复制等操作。


s = set("hello")

"""
添加一个元素到集合中
"""
s.add('b')

"""
使用可迭代对象更新集合
"""
s.update([1,2,3,4])

"""
清空集合
"""
s.clear()

"""
拷贝集合(浅拷贝)返回拷贝的副本
"""
s.copy()

"""
随机删除一个元素
如果集合为空返回KeyError异常
"""
s = set("hello")
s.pop()

"""
删除指定元素 没有该元素会报错
"""
s.remove('e')

"""
删除指定元素 没有不报错
"""
s.discard('e')

集合间的交并差运算

集合运算涵盖了交集、并集、差集以及交叉补集(对称差集)四种基本逻辑关系。


s1 = {1,2,3,4,5}
s2 = {1,2,3,6,7}

"""
交集
>>> s1.intersection(s2)
{1, 2, 3}
>>> s1&s2
{1, 2, 3}
"""
s1.intersection(s2)
s1&s2

"""
并集
>>> s1.union(s2)
{1, 2, 3, 4, 5, 6, 7}
>>> s1|s2
{1, 2, 3, 4, 5, 6, 7}
"""
s1.union(s2)
s1|s2

"""
差集
>>> s1.difference(s2)
{4, 5}
>>> s1-s2
{4, 5}
"""
s1.difference(s2)
s1-s2


"""
交叉补集(取各自的不同部分)
>>> s1.symmetric_difference(s2)
{4, 5, 6, 7}
"""
s1.symmetric_difference(s2)

"""
其他update函数
"""
s1.difference_update(s2)
s1.intersection_update(s2)
s1.symmetric_difference_update(s2)

集合关系的判断函数

除了基础运算,集合还提供了is开头的判断函数,用于检测集合间的包含或不相交关系。


s1 = {1,2,3}
s2 = {1,2}

"""
返回两个集合是否有交集
"""
s1.isdisjoint(s2)

"""
返回s1是否为s2子集
"""
s1.issubset(s2)

"""
返回s1是否为s2父集
"""
s1.issuperset(s2)

以上内容涵盖了Python集合的主要使用场景,希望能为读者的编程学习提供实用参考。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。