Python精讲:Python中集合的交集并集差集和对称差集运算方法详解

Python010

Python精讲:Python中集合的交集并集差集和对称差集运算方法详解,第1张

欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《Python中集合的交集、并集、差集和对称差集运算方法详解》。主要讲的是集合运算的相关的概念,及运算方法,包括:集合的交集、集合的并集、集合的差集、集合的对称差集、集合的交集运算方法、集合的并集运算方法、集合的差集运算方法、集合的对称差集运算方法。

在Python中,集合最常用的操作就是进行交集、并集、差集和对称差集的运算。

要想学习集合的交集、并集、差集和对称差集运算方法,首先我们来了解这些名词的含义:

设A、B两个集合,由所有属于集合A且属于集合B的元素所组成的集合,叫做集合A与集合B的交集。在Python中,进行交集运算时使用“&”符号。

给定两个集合A、B,把他们所有的元素合并在一起组成的集合,叫做集合A与集合B的并集。在Python中,进行并集运算时使用“|”符号。

设A,B是两个集合,则所有属于A且不属于B的元素构成的集合,叫做集合A与集合B的差集。在Python中,进行差集运算时使用“-”符号。

对称差集也称为对称差分或者补集,设A,B是两个集合,所有不相同的集合,叫做集合A与集合B的对称差集(对称差分或者补集)。在Python中,进行对称差集运算时使用“^”符号。

上面都是概念性的描述,下面站长在线来举实际的场景来对交集、并集、差集和对称差集运算方法进行深入浅出的解读。

场景模拟:某高中三年级,文科班高考的科目是语文、数学、英语、政治、 历史 和地理。理科班高考的科目是语文、数学、英语、物理、化学和生物。

设定集合A为文科班高考的科目,集合B为理科班高考的科目。

A = {'语文','数学','英语','政治',' 历史 ','地理'}

B = {'语文','数学','英语','物理','化学','生物'}

我们使用集合的交集运算的时候可以采用两种方式,一种是使用“&”运算符进行操作,另一种是使用 intersection() 方法来实现。

运行结果

运行结果:

同理集合B和集合A的交集也是一样。我这里就不重复了,自己去体验一下。

集合的并集运算也有两种方式,一种是使用“|”运算符进行操作,另一种是使用union()方法来实现。

运行结果如下:

运行结果为:

同理集合B和集合A的并集也是一样。自己去体验一下吧!

集合的差集运算也有两种方式,一种是使用“-”运算符进行操作,另一种是使用difference()方法来实现。

运行结果为:

上面是集合A和集合B的差集,但是集合B和集合A的差集就不是一样的了哦!

运行结果为:

从上面可以看出,集合A和集合B的差集 与 集合B和集合A的差集是不一样的,(A - B)是A中存在的部分,(B - A)是B中存在的部分。

运行结果:

同理,使用difference()方法进行集合B和集合A的差集也是不同的

运行结果:

集合的差集运算也有两种方式,一种是使用“^”运算符进行操作,另一种是使用symmetric_difference()方法来实现。

运行结果为:

运行结果为:

同样的,集合B与集合A的对称差集也是一样,自己去体验一下。

我们对集合的交集、并集、差集和对称差集运算方法全部详细的讲解了一遍,通过运行结果,我们得出结论:

集合中进行交集、并集、对称差集进行运算的时候,集合A与集合B,位置替换的时候,结果相同。

集合中进行差集运算的时候,集合A与集合B,位置替换的时候,结果不同,为前面那个集合独立存在的部分。

到此为止,本节课的内容《Python中集合的交集、并集、差集和对称差集运算方法详解》就完全讲完了,主要讲的集合运算的相关的概念,及运算方法,包括:集合的交集、集合的并集、集合的差集、集合的对称差集、集合的交集运算方法、集合的并集运算方法、集合的差集运算方法、集合的对称差集运算方法。

我们在遇到一些问题的时候,使用集合的交集、并集和差集能够更便捷的帮助我们去解决问题,看下面一个例子。

某学校有两个班级,班级A需要学习数学、语文、英语、物理、化学和生物,班级B需要学习数学、语文、英语、政治、地理和历史。

我们可以直接看出A班级和B班级的交集为数学、语文和英语,并集为数学、语文、英语、物理、化学、生物、政治、地理、历史,A和B的差集为物理、化学和生物。

那么怎么使用Python去完成这些运算?

我们先在这里定义两个集合,

因为是求交集,因此A和B的位置调换依然不影响结果。

使用集合求并集的方式同样也是两种方式,一种是使用 ‘|’ 运算符进行操作,一种是使用 union() 方法来实现。

求并集的时候同样不需要注意 A 和 B 的位置关系。

使用集合求差集的方式同样也是两种方式,一种是使用 ‘-’ 运算符进行操作,一种是使用 difference() 方法来实现。

在方法2中注意 A 和 B 的位置不同的时候是有区别的,如果是 A 使用 difference() 方法,那么是输出 A 中有而 B 中没有的元素,如果是 B 使用 difference() 方法,那么是输出 B 中有而 A 中没有的元素。

学习完了集合,四种核心集合我们已经基本掌握,接下来几节我们来通过学习一些字符串的相关操作,学习字符串的过程中会穿插着前面简单介绍过但没仔细讲解的方法及操作。

本文实例讲述了python获得两个数组交集、并集、差集的房部分。分享给大家供大家参考。具体如下:

1. 获取两个list 的交集

#方法一:

a=[2,3,4,5]

b=[2,5,8]

tmp = [val for val in a if val in b]

print tmp

#[2, 5]

#方法二

print list(set(a).intersection(set(b)))

2. 获取两个list 的并集

print list(set(a).union(set(b)))

3. 获取两个 list 的差集

print list(set(b).difference(set(a))) # b中有而a中没有的

通过以上方法,就能处理python list 的交集,并集,差集了。