Python - 集合

在数学上,一组是不以任何特定顺序的项目的集合。Python集合与此数学定义类似,但有以下附加条件。

  • 该集合中的元素不能重复。

  • 该集合中的元素是不可变的(不能被修改),但集合作为一个整体是可变的。

  • 没有索引附加到python集合中的任何元素。所以他们不支持任何索引或切片操作。

设置操作

python中的集合通常用于像union,intersection,difference和complement等数学运算。我们可以创建一个集合,访问它的元素并执行这些数学运算,如下所示。

创建一个集合

通过使用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)

当上面的代码执行时,它会产生以下结果。请注意,结果只有一个“结婚”。

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

集合的差异

对两组进行差异化操作会产生一个新的集合,其中只包含来自第一集合的元素,而不包含第二集合中的元素。在下面的例子中,元素“Wed”出现在两个集合中,所以它不会在结果集中找到。

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

当上面的代码执行时,它会产生以下结果。请注意,结果只有一个“结婚”。

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

推荐教程

Python 2.7.X 手册

Python 2.7基础语法、实例讲解

Python实用手册

Python 实战演练、轻松入门

PySpark教程

Apache Spark是一个闪电般快速的实时处理框架

Seaborn教程

Seaborn是Python中的可视化库

Flask教程

Flask是一个用Python编写的Web应用程序框架

Django教程

Django是一个Web开发框架

Web2py教程

Web2py被定义为一个免费的开源Web开发框架

Scrapy教程

Scrapy是一个用Python编写的快速,开源的网页爬虫框架

Python3 教程

常被称为Python 3000,或简称Py3k

Python数据结构

算法是一步一步的指令集来处理特定用途的数据