Python - 集合(Sets)

Python - 集合(Sets) 首页 / 数据结构入门教程 / Python - 集合(Sets)

从数学上讲,集合(Sets)是指不按特定顺序排列的元素集合, 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)

执行以上代码后,将产生以下输出。

无涯教程网

链接:https://www.learnfk.comhttps://www.learnfk.com/python-data-structure/python-sets.html

来源:LearnFk无涯教程网

Wed
Sun
Fri
Tue
Mon
Thu
Sat

添加元素

可以使用add()方法将元素添加到集合中,再次如所讨论的,新添加的元素没有附加特定的索引。

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

执行以上代码后,将产生以下输出。

无涯教程网

链接:https://www.learnfk.comhttps://www.learnfk.com/python-data-structure/python-sets.html

来源:LearnFk无涯教程网

set(['Wed', 'Sun', 'Fri', 'Tue', 'Mon', 'Thu', 'Sat'])

删除元素

无涯教程可以使用discard()方法从集合中删除元素,再次如所讨论的,新添加的元素没有附加特定的索引。

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

执行以上代码后,将产生以下输出。

无涯教程网

链接:https://www.learnfk.comhttps://www.learnfk.com/python-data-structure/python-sets.html

来源:LearnFk无涯教程网

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)

执行以上代码后,将产生以下输出。 

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)

执行以上代码后,将产生以下输出。

无涯教程网

链接:https://www.learnfk.comhttps://www.learnfk.com/python-data-structure/python-sets.html

来源:LearnFk无涯教程网

set(['Wed'])
 

差集运算

对两个集合进行差分运算将生成一个新集合,该集合仅包含第一组元素,而第二组元素都不包含。在下面的示例中,两个集合中都存在元素" Wed",因此在输出集中将找不到该元素。

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

执行以上代码后,将产生以下输出。

无涯教程网

链接:https://www.learnfk.comhttps://www.learnfk.com/python-data-structure/python-sets.html

来源:LearnFk无涯教程网

set(['Mon', 'Tue'])

比较集运算

无涯教程可以检查给定集合是另一个集合的子集还是超集,根据集合中存在的元素,输出为是或否。

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

执行以上代码后,将产生以下输出。

无涯教程网

链接:https://www.learnfk.comhttps://www.learnfk.com/python-data-structure/python-sets.html

来源:LearnFk无涯教程网

True
True

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

如何做好一场技术演讲 -〔极客时间〕

设计模式之美 -〔王争〕

技术管理案例课 -〔许健〕

容量保障核心技术与实战 -〔吴骏龙〕

大厂广告产品心法 -〔郭谊〕

React Native 新架构实战课 -〔蒋宏伟〕

JavaScript进阶实战课 -〔石川〕

AI绘画核心技术与实战 -〔南柯〕

手把手带你写一个 MiniTomcat -〔郭屹〕

好记忆不如烂笔头。留下您的足迹吧 :)