Python教程:集合(不以任何特定顺序的数据项)

2018-10-1419:13:02数据结构与算法Comments3,189 views字数 1972阅读模式

数学上,集合(Set)是不以任何特定顺序的数据项。 Python集合与此数学定义类似,但有以下附加条件。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6666.html

  • 集合中的元素不能重复。
  • 集合中的元素是不可变的(不能被修改),但集合作为一个整体是可变的。
  • 附加到python集合中的任何元素不需要索引。所以集合不支持任何索引或切片操作。

集合操作

python中的集合通常用于像联合,相交,异同和补充等数学运算。下面创建一个集合,访问它的元素并执行这些数学运算。参考以下示例代码 -文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6666.html

创建一个集合文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6666.html

通过使用set()函数或将所有元素放置在一对大括号内创建一个集合。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6666.html

Days=set(["Mon","Tue","Wed","Thu","Fri","Sat","Sun"])
Months={"Jan","Feb","Mar"}
Dates={21,22,17}
print(Days)
print(Months)
print(Dates)
Python

当上面的代码执行时,它会产生以下结果。 请注意结果中元素的顺序如何变化。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6666.html

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

访问集合中的值文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6666.html

我们无法访问集合中的单个值。只能如上所示访问所有元素。 但是也可以通过遍历该集合来获取单个元素的列表。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6666.html

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

for d in Days:
    print(d)
Python

当执行上面示例代码时,得到以下结果 -文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6666.html

Wed
Sun
Fri
Tue
Mon
Thu
Sat
Shell

将项目添加到集合文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6666.html

可以使用add()方法将元素添加到集合中。附加到新添加的元素不需要指定索引。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6666.html

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

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

当上面的代码执行时,它会产生以下结果 -文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6666.html

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

从集合中删除项目文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6666.html

可以使用discard()方法从集合中删除元素。参考以下代码实现 -文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6666.html

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

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

执行上面示例代码,得到以下结果 -文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6666.html

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

集合的联合操作文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6666.html

两个集合上的联合操作产生一个包含来自两个集合的所有不同元素的新集合。 在下面的例子中,元素"Wed"出现在两个集合中。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6666.html

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

执行上面示例代码,得到以下结果 -文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6666.html

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

集合的交集文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6666.html

两个集合上的交集操作产生一个新的集合,其中只包含来自两个集合的共同元素。 在下面的例子中,元素"Wed"出现在两个集合中。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6666.html

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

执行上面示例代码,得到以下结果 -文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6666.html

{'Wed'}
Shell

集合的差集文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6666.html

对两组进行差异化操作会产生一个新的集合,其中只包含来自第一集合的元素,而不包含第二集合中的元素。 在下面的例子中,元素Wed出现在两个集合中,所以它不会在结果集中找到。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6666.html

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

执行上面示例代码,得到以下结果 -文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6666.html

{'Mon', 'Tue'}
Shell

比较集合文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6666.html

可以检查一个给定的集合是否是另一个集合的子集或超集。 结果是TrueFalse,取决于组中存在的元素。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6666.html

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

执行上面示例代码,得到以下结果 -文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6666.html

True
True
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6666.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/suanfa/6666.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定