- Python 数据结构和算法教程
- Python-DS 主页
- Python-DS简介
- Python-DS 环境
- Python-数组
- Python - 列表
- Python - 元组
- Python-字典
- Python - 二维数组
- Python-矩阵
- Python - 集合
- Python - 地图
- Python - 链表
- Python-堆栈
- Python-队列
- Python-出队
- Python - 高级链表
- Python-哈希表
- Python - 二叉树
- Python - 搜索树
- Python - 堆
- Python - 图表
- Python - 算法设计
- Python——分而治之
- Python - 递归
- Python-回溯
- Python - 排序算法
- Python - 搜索算法
- Python - 图算法
- Python-算法分析
- Python - 大 O 表示法
- Python - 算法类
- Python - 摊销分析
- Python - 算法论证
- Python 数据结构和算法有用资源
- Python - 快速指南
- Python - 有用的资源
- Python - 讨论
Python - 集合
从数学上讲,集合是不按任何特定顺序排列的项目的集合。Python 集与此数学定义类似,但具有以下附加条件。
集合中的元素不能重复。
集合中的元素是不可变的(无法修改),但集合作为一个整体是可变的。
python 集合中的任何元素都没有附加索引。因此它们不支持任何索引或切片操作。
设置操作
Python 中的集合通常用于数学运算,如并、交、差和补等。我们可以创建一个集合,访问它的元素并执行这些数学运算,如下所示。
创建一个集合
集合是通过使用 set() 函数或将所有元素放在一对大括号内来创建的。
例子
Days=set(["Mon","Tue","Wed","Thu","Fri","Sat","Sun"]) Months={"Jan","Feb","Mar"} Dates={21,22,17} print(Days) print(Months) print(Dates)
输出
当执行上面的代码时,会产生以下结果。请注意结果中元素顺序的变化。
set(['Wed', 'Sun', 'Fri', 'Tue', 'Mon', 'Thu', 'Sat']) set(['Jan', 'Mar', 'Feb']) set([17, 21, 22])
访问集合中的值
我们无法访问集合中的单个值。我们只能一起访问所有元素,如上所示。但我们也可以通过循环遍历集合来获取单个元素的列表。
例子
Days=set(["Mon","Tue","Wed","Thu","Fri","Sat","Sun"]) for d in Days: print(d)
输出
执行上述代码时,会产生以下结果 -
Wed Sun Fri Tue Mon Thu Sat
将项目添加到集合中
我们可以使用 add() 方法将元素添加到集合中。再次正如所讨论的,新添加的元素没有附加特定的索引。
例子
Days=set(["Mon","Tue","Wed","Thu","Fri","Sat"]) Days.add("Sun") print(Days)
输出
执行上述代码时,会产生以下结果 -
set(['Wed', 'Sun', 'Fri', 'Tue', 'Mon', 'Thu', 'Sat'])
从集合中删除项目
我们可以使用discard()方法从集合中删除元素。再次正如所讨论的,新添加的元素没有附加特定的索引。
例子
Days=set(["Mon","Tue","Wed","Thu","Fri","Sat"]) Days.discard("Sun") print(Days)
输出
当执行上面的代码时,会产生以下结果。
set(['Wed', 'Fri', 'Tue', 'Mon', 'Thu', 'Sat'])
集合并集
对两个集合进行并集运算会生成一个新集合,其中包含这两个集合中的所有不同元素。在下面的示例中,元素“Wed”同时存在于两个集合中。
例子
DaysA = set(["Mon","Tue","Wed"]) DaysB = set(["Wed","Thu","Fri","Sat","Sun"]) AllDays = DaysA|DaysB print(AllDays)
输出
当执行上面的代码时,会产生以下结果。请注意,结果只有一个“wed”。
set(['Wed', 'Fri', 'Tue', 'Mon', 'Thu', 'Sat'])
集合的交集
两个集合的交集运算会生成一个新集合,其中仅包含两个集合中的公共元素。在下面的示例中,元素“Wed”同时存在于两个集合中。
例子
DaysA = set(["Mon","Tue","Wed"]) DaysB = set(["Wed","Thu","Fri","Sat","Sun"]) AllDays = DaysA & DaysB print(AllDays)
输出
当执行上面的代码时,会产生以下结果。请注意,结果只有一个“wed”。
set(['Wed'])
集合的差异
对两个集合进行差分运算会生成一个新集合,其中仅包含第一个集合中的元素,而不包含第二个集合中的元素。在下面的示例中,元素“Wed”同时存在于两个集合中,因此在结果集中找不到它。
例子
DaysA = set(["Mon","Tue","Wed"]) DaysB = set(["Wed","Thu","Fri","Sat","Sun"]) AllDays = DaysA - DaysB print(AllDays)
输出
当执行上面的代码时,会产生以下结果。请注意,结果只有一个“wed”。
set(['Mon', 'Tue'])
比较集
我们可以检查给定的集合是否是另一个集合的子集或超集。结果是 True 或 False,具体取决于集合中存在的元素。
例子
DaysA = set(["Mon","Tue","Wed"]) DaysB = set(["Mon","Tue","Wed","Thu","Fri","Sat","Sun"]) SubsetRes = DaysA <= DaysB SupersetRes = DaysB >= DaysA print(SubsetRes) print(SupersetRes)
输出
执行上述代码时,会产生以下结果 -
True True