网站首页 > 技术文章 正文
在之前的分享中,我们介绍了关于Python中Set集合的简单操作,实际上在Python中还提供了关于Set集合更多强大的操作功能,下面我们就来详细看看这些高级功能的使用。
交集、并集、差集和对称差集
两个集合的交集表示该操作会返回两个集合中都存在的元素而组成的一个新的集合。代码如下所示。
# 创建两个集合
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
# 交集
intersection = set1.intersection(set2)
print("Intersection:", intersection) # Output: {4, 5}
两个集合的并集表示该操作会返回两个集合中所有唯一的元素所组成的一个新的集合,代码如下所示。
# 创建两个集合
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
# 并集
union = set1.union(set2)
print("Union:", union) # Output: {1, 2, 3, 4, 5, 6, 7, 8}
两个集合的差集表示只会返回存在于第一个集合中的元素,也就是说如果有两个集合set1和set2,那么set1.difference(set2) 返回 {1, 2, 3},即只包含在 set1 中但不在 set2 中的元素。如下所示。
# 创建两个集合
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
# 差集
difference = set1.difference(set2)
print("Difference:", difference) # Output: {1, 2, 3}
两个集合的对称差集,表示返回两个集合中仅存在于其中一个集中的元素所组成的元素集合。也就是说set1.symmetric_difference(set2) 返回 {1, 2, 3, 6, 7, 8},即包含在 set1 或 set2 中但不同时存在于两者中的元素。如下所示。
# 创建两个集合
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
# 对称差集
symmetric_difference = set1.symmetric_difference(set2)
print("Symmetric Difference:", symmetric_difference) # Output: {1, 2, 3, 6, 7, 8}
集合操作符
在集合操作中也可以直接使用符号来进行上述的操作。如下所示。
- &: 交集操作符。
- |: 并集操作符。
- -: 差集操作符。
- ^: 对称差集操作符。
给出上述操作示例代码如下所示。
# 使用操作符进行集合操作
intersection_op = set1 & set2
union_op = set1 | set2
difference_op = set1 - set2
symmetric_difference_op = set1 ^ set2
print("Intersection (Operator):", intersection_op) # Output: {4, 5}
print("Union (Operator):", union_op) # Output: {1, 2, 3, 4, 5, 6, 7, 8}
print("Difference (Operator):", difference_op) # Output: {1, 2, 3}
print("Symmetric Difference (Operator):", symmetric_difference_op) # Output: {1, 2, 3, 6, 7, 8}
子集和超集检查
子集和超集的检查,就是就是判断一个集合是否为另一个集合的子集,或者是超集,子集表示该集合的元素要比原来集合的少,而超集则表示该集合比原集合的数据元素多,如下所示。
# 子集和超集检查
subset_check = {1, 2}.issubset(set1)
superset_check = set1.issuperset({1, 2})
print("Subset Check:", subset_check) # Output: True
print("Superset Check:", superset_check) # Output: True
- issubset():判断一个集合是否是另一个集合的子集。
- issuperset():判断一个集合是否是另一个集合的超集。
集合推导式
在之前我们也介绍过集合推导式,表示允许通过某些条件来创建一个新的集合操作。如下所示。
# 集合推导式
evens = {x for x in range(10) if x % 2 == 0}
print("Set Comprehension:", evens) # Output: {0, 2, 4, 6, 8}
增强赋值操作
增强赋值操作的意思就是说,可通过一种简单的方式来更新集合数据,而不需要新的赋值操作。如下所示。
set1.update({6, 7})
print("Updated set1:", set1) # Output: {1, 2, 3, 4, 5, 6, 7}
set1.intersection_update(set2)
print("Intersection Update:", set1) # Output: {4, 5}
set1.difference_update(set2)
print("Difference Update:", set1) # Output: set()
- update(): 将一个集合的元素添加到另一个集合中。
- intersection_update(): 保留两个集合的交集并更新原始集合。
- difference_update(): 从一个集合中移除与另一个集合相同的元素并更新原始集合。
- symmetric_difference_update(): 将两个集合中仅存在于一个集合中的元素添加到原始集合中。
集合的复制
可以通过使用copy()方法或set()构造函数进行集合的复制。
# 复制集合
copy_of_set1 = set1.copy()
print("Copy of set1:", copy_of_set1) # Output: set()
删除操作
通过如下的方法可以对集合中的元素进行删除操作,如下所示。
- remove():删除集合中的指定元素,如果元素不存在,则引发 KeyError 异常。
- discard():删除集合中的指定元素,如果元素不存在,则不执行任何操作。
- pop():随机删除并返回集合中的一个元素。
# 删除操作
set1.remove(4)
print("After removing 4:", set1) # Output: {5}
set1.discard(5)
print("After discarding 5:", set1) # Output: set()
popped_element = set2.pop()
print("Popped element from set2:", popped_element) # Output: Some element from set2
清空集合
通过clear()函数来清空集合中的所有元素操作。
# 清空集合
set2.clear()
print("Cleared set2:", set2) # Output: set()
总结
以上就是Set集合操作的一些高级操作,当然在实际使用的时候需要结合实际情况来灵活应变,这样才能发挥出集合高级操作的作用。
- 上一篇: Python基础之Set集合操作
- 下一篇: 容易忽略的数据类型:集合(set)
猜你喜欢
- 2025-04-29 Python 多线程之 Redis 分布式锁
- 2025-04-29 Python打包方式PyInstaller、cx_Freeze、Py2exe、setuptools用法
- 2025-04-29 Python的hasattr() getattr() setattr() 函数使用方法详解
- 2025-04-29 python集合set() 数据增册改查统计序循常用方法和数学计算
- 2025-04-29 微软承认Windows 10新BUG:错误显示没有网络连接
- 2025-04-29 一个开源免费高颜值的轻量级商业智能BI平台Superset 介绍
- 2025-04-29 Python小案例46-集合的定义和创建
- 2025-04-29 Python基础知识之集合(set)中交集、并集、差集运算
- 2025-04-29 Python Set Difference():完整指南
- 2025-04-29 简单学Python——内置函数24——set()函数
- 263℃Python短文,Python中的嵌套条件语句(六)
- 262℃python笔记:for循环嵌套。end=""的作用,图形打印
- 261℃PythonNet:实现Python与.Net代码相互调用!
- 255℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 255℃Python实现字符串小写转大写并写入文件
- 113℃原来2025是完美的平方年,一起探索六种平方的算吧
- 94℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 87℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)