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'])

比较集合

我们可以检查一个给定的集合是否是另一个集合的子集或超集。其结果是 “真 “或 “假”,取决于集合中的元素。

例子

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程