Code前端首页关于Code前端联系我们

Python 教程:集合(不按特定顺序排列的数据项)

terry 2年前 (2023-09-27) 阅读数 67 #数据结构与算法

在数学上,集合是一组不按特定顺序排列的数据项。 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)
Python

当执行上述代码时,会产生以下结果。请注意结果中元素的顺序如何变化。

{'Wed', 'Fri', 'Tue', 'Mon', 'Thu', 'Sun', 'Sat'}
{'Feb', 'Mar', 'Jan'}
{17, 21, 22}
Shell

访问集合中的值

我们无法访问集合中的单个值。所有元素只能按如上所示进行访问。但也可以通过迭代集合来获取单个元素的列表。

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

for d in Days:
    print(d)
Python

运行上述示例代码时,您将得到以下结果 -

Wed
Sun
Fri
Tue
Mon
Thu
Sat
Shell

将项目添加到集合中

您可以使用 add () 将项目添加到集合中方法中。为了添加到新添加的元素,不需要指定索引。

Days=set(["Mon","Tue","Wed","Thu","Fri","Sat"])

Days.add("Sun")
print(Days)
Python

执行上述代码时,会产生以下结果:

{'Wed', 'Sat', 'Thu', 'Mon', 'Sun', 'Tue', 'Fri'}
Shell

从集合中删除项目

您可以使用方法 discard()集合中删除元素。参考如下代码实现 -

Days=set(["Mon","Tue","Wed","Thu","Fri","Sat"])

Days.discard("Sun")
print(Days)
Python

运行上述示例代码,得到以下结果 -

{'Tue', 'Fri', 'Wed', 'Sat', 'Thu', 'Mon'}
Shell

对集合进行并集运算

对两个集合进行并集运算,生成一个新集合所有不同元素的集合。在下面的示例中,元素 "wo" 出现在两个集合中。

DaysA = set(["Mon","Tue","Wed"])
DaysB = set(["Wed","Thu","Fri","Sat","Sun"])
AllDays = DaysA|DaysB
print(AllDays)
Python

运行上面的示例代码并得到以下结果 -

{'Mon', 'Sun', 'Thu', 'Tue', 'Wed', 'Fri', 'Sat'}
Shell

集合的交集

对两个集合的剪切操作会生成一个新集合,其中仅包含来自两个集合的公共元素的项目收藏。在下面的示例中,元素 "wo" 出现在两个集合中。

DaysA = set(["Mon","Tue","Wed"])
DaysB = set(["Wed","Thu","Fri","Sat","Sun"])
AllDays = DaysA & DaysB
print(AllDays)
Python

运行上面的示例代码,得到以下结果 -

{'Wed'}
Shell

集合的差异集合

对两个集合执行差异运算将产生一个仅包含值的新集合包含该集合的第一个集合元素,不包括第二个集合的元素。在下面的示例中,元素 Wo 出现在两个集合中,因此它不会出现在结果集中。

DaysA = set(["Mon","Tue","Wed"])
DaysB = set(["Wed","Thu","Fri","Sat","Sun"])
AllDays = DaysA - DaysB
print(AllDays)
Python

运行上面的示例代码并得到以下结果 -

{'Mon', 'Tue'}
Shell

比较集合

您可以检查特定集合是否是另一个集合的子集或超集。结果是 TrueFalse,具体取决于组中存在的元素。

DaysA = set(["Mon","Tue","Wed"])
DaysB = set(["Mon","Tue","Wed","Thu","Fri","Sat","Sun"])
SubsetRes = DaysA <= DaysB
SupersetRes = DaysB >= DaysA
print(SubsetRes)
print(SupersetRes)
Python

运行上面的示例代码,得到以下结果 -

True
True

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门