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

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

本文详细介绍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 相关产品和应用

全部下载

专题列表