python集合运算介绍及示例代码

Python 中的集合(set)是一种数据类型,用于存储唯一元素的无序集合。集合支持多种运算,如并集、交集、差集和对称差集,方便执行数学上的集合操作。

1. 创建集合

可以使用大括号 {} 或者 set() 函数创建集合:

复制代码
# 使用大括号
set1 = {1, 2, 3, 4}
# 使用 set() 函数
set2 = set([3, 4, 5, 6])

2. 集合基本运算

2.1 并集 (union)

返回两个集合的并集,即包含两个集合中所有元素的集合。使用 | 操作符或者 union() 方法。

复制代码
set1 = {1, 2, 3}
set2 = {3, 4, 5}

# 并集
union_set = set1 | set2
# 或者
union_set = set1.union(set2)

print(union_set)  # 输出: {1, 2, 3, 4, 5}
2.2 交集 (intersection)

返回两个集合的交集,即两个集合中都包含的元素。使用 & 操作符或者 intersection() 方法。

复制代码
# 交集
intersection_set = set1 & set2
# 或者
intersection_set = set1.intersection(set2)

print(intersection_set)  # 输出: {3}
2.3 差集 (difference)

返回只在第一个集合中而不在第二个集合中的元素。使用 - 操作符或者 difference() 方法。

复制代码
# 差集
difference_set = set1 - set2
# 或者
difference_set = set1.difference(set2)

print(difference_set)  # 输出: {1, 2}
2.4 对称差集 (symmetric_difference)

返回在两个集合中,但不同时存在于两个集合中的元素。使用 ^ 操作符或者 symmetric_difference() 方法。

复制代码
# 对称差集
symmetric_difference_set = set1 ^ set2
# 或者
symmetric_difference_set = set1.symmetric_difference(set2)

print(symmetric_difference_set)  # 输出: {1, 2, 4, 5}

3. 集合的其他常用方法

3.1 添加元素 (add)

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

复制代码
set1.add(6)
print(set1)  # 输出: {1, 2, 3, 6}
3.2 删除元素 (removediscard)

使用 remove() 方法删除集合中的指定元素,如果元素不存在会引发 KeyErrordiscard() 方法则不会引发错误。

复制代码
set1.remove(6)
set1.discard(10)  # 不会报错
3.3 检查子集和超集
  • 使用 issubset() 方法检查一个集合是否是另一个集合的子集。

  • 使用 issuperset() 方法检查一个集合是否是另一个集合的超集。

    set3 = {1, 2}
    print(set3.issubset(set1)) # 输出: True
    print(set1.issuperset(set3)) # 输出: True

3.4 清空集合 (clear)

使用 clear() 方法可以清空集合。

复制代码
set1.clear()
print(set1)  # 输出: set()

集合运算适用于快速去重、元素关系判断等操作,是Python中功能强大的数据类型之一。

相关推荐
飞翔的佩奇3 小时前
【完整源码+数据集+部署教程】表盘指针检测系统源码和数据集:改进yolo11-CA-HSFPN
python·yolo·计算机视觉·数据集·yolo11·表盘指针检测
larance4 小时前
SQLAlchemy 的异步操作来批量保存对象列表
数据库·python
搏博4 小时前
基于Python3.10.6与jieba库的中文分词模型接口在Windows Server 2022上的实现与部署教程
windows·python·自然语言处理·flask·中文分词
麦兜*5 小时前
Swift + Xcode 开发环境搭建终极指南
开发语言·ios·swiftui·xcode·swift·苹果vision pro·swift5.6.3
lxmyzzs5 小时前
pyqt5无法显示opencv绘制文本和掩码信息
python·qt·opencv
萧鼎6 小时前
Python pyzmq 库详解:从入门到高性能分布式通信
开发语言·分布式·python
艾伦~耶格尔7 小时前
【集合框架LinkedList底层添加元素机制】
java·开发语言·学习·面试
yujkss7 小时前
Python脚本每天爬取微博热搜-终版
开发语言·python
yzx9910137 小时前
小程序开发APP
开发语言·人工智能·python·yolo
飞翔的佩奇8 小时前
【完整源码+数据集+部署教程】二维码与查找模式检测系统源码和数据集:改进yolo11-CSwinTransformer
python·yolo·计算机视觉·数据集·yolo11·二维码与查找模式检测