Python集合Set详解:创建、增删改查与数学运算

闻溪
闻溪
发布时间:2026-10-16| 7人浏览过
原创

本文详细介绍Python中集合(Set)的创建、访问、增删及数学运算。涵盖使用set()或大括号创建集合,遍历获取元素,利用add()、update()添加,remove()、discard()、pop()、clear()及del删除元素。同时解析copy()、issuperset()、union()、difference()、intersection()、symmetric_difference()及isdisjoint()等方法,助力掌握集合去重与逻辑处理。

前序

在Python编程语言中,集合(Set)是一种无序且不包含重复元素的数据结构,它不支持通过索引访问元素。集合通常应用于数据去重处理,以及执行并集、交集、差集和补集等数学集合运算。

集合操作

创建集合

可以通过调用set()函数,或者将元素直接放置在一对大括号{}中来创建集合。

Days=set(["Mon","Tue","Wed","Thu","Fri","Sat","Sun"])
Months={"Jan","Feb","Mar"}
Dates={21,22,17}

访问集合

由于集合是无序的,我们无法直接通过索引访问集合中的单个元素。要获取集合中的所有元素,可以遍历整个集合,从而逐个处理其中的元素。

Days=set(["Mon","Tue","Wed","Thu","Fri","Sat","Sun"])
for d in Days:
    print(d)

判断集合是存在指定值

    x = {"a","b","c"}
    print("a" in x)

集合添加

可以使用add()方法向集合中添加单个元素。

Days=set(["Mon","Tue","Wed","Thu","Fri","Sat"])
Days.add("Sun")
print(Days)

若需一次性添加多个元素,可以使用update()方法。

thisset = {"apple", "banana", "cherry"}
thisset.update(["orange", "mango", "grapes"])
print(thisset)

集合删除

要从集合中移除元素,可以使用remove()或discard()方法。

Days=set(["Mon","Tue","Wed","Thu","Fri","Sat"])
Days.discard("Sun")
print(Days)
thisset = {"apple", "banana", "cherry"}
thisset.remove("banana")
print(thisset)

需要注意的是,如果使用remove()删除一个不存在的元素,程序会抛出错误;而discard()在元素不存在时不会报错,更加安全。

此外,还可以使用pop()方法删除元素,但该方法会移除并返回集合中的“最后一个”元素。由于集合是无序的,具体被删除的是哪个元素是不确定的。pop()方法会返回被删除的那个元素值。

thisset = {"apple", "banana", "cherry"}
x = thisset.pop()
print(x)

clear()方法用于清空集合内的所有元素,使集合变为空集合。

thisset = {"apple", "banana", "cherry"}
thisset.clear()
print(thisset)

del关键字则可以彻底删除整个集合对象,使其不再存在于内存中。

thisset = {"apple", "banana", "cherry"}
del thisset
print(thisset)

集合函数

返回集合的副本

如果不使用copy()方法,而是直接使用等号(=)进行赋值,实际上只是复制了集合的引用地址。这会导致修改副本时,原集合也会发生相应变化,因此建议使用copy()创建独立的副本。

fruits = {"apple", "banana", "cherry"}
x = fruits.copy()
print(x)

判断集合内是否包含另一个集合

issuperset()方法用于判断指定集合中的所有元素是否都包含在原始集合中。如果是,则返回True,否则返回False。

x = {"f", "e", "d", "c", "b", "a"}
y = {"a", "b", "c"}
z = x.issuperset(y) 
print(z)

并集

可以使用union()方法生成一个新集合,其中包含两个集合的所有元素;或者使用update()方法将一个集合的所有元素添加到另一个集合中。

set1 = {"a", "b" , "c"}
set2 = {1, 2, 3}

set3 = set1.union(set2)
print(set3)
set1 = {"a", "b" , "c"}
set2 = {1, 2, 3}

set1.update(set2)
print(set1)

需要注意的是,union()和update()操作都会自动排除重复的元素。

差集

差集运算返回存在于第一个集合但不存在于第二个集合的元素。

x = {"apple", "banana", "cherry"}
y = {"google", "microsoft", "apple"}

z = x.difference(y) 

print(z)

交集

intersection()方法用于返回两个或多个集合中共同存在的元素。

x = {"apple", "banana", "cherry"}
y = {"google", "microsoft", "apple"}

z = x.intersection(y) 

print(z)

补集

对称差集(symmetric_difference)返回的集合包含两个集合中不共有的元素,即剔除两个集合都包含的元素后剩余的部分。

x = {"apple", "banana", "cherry"}
y = {"google", "microsoft", "apple"}

z = x.symmetric_difference(y) 

print(z)

交集判断

isdisjoint()方法用于判断两个集合是否没有共同元素。如果集合x和集合y没有交集,则返回True,否则返回False。

x = {"apple", "banana", "cherry"}
y = {"google", "microsoft", "facebook"}
z = x.isdisjoint(y) 
print(z)

以上就是关于Python集合(Set)基础使用教程的详细介绍,涵盖了创建、增删改查及常见数学运算。如需了解更多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 算法库。