集合的运算(交集、并集和差集)

点击打开在线编译器,边学边练

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

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

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

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

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

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

    1. 交集

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

        我们通过这两种方法来分别求集合A和B的交集。

        方法1——使用‘&’运算符:

>>> A = {'数学','语文','英语','物理','化学','生物'}
>>> B = {'数学','语文','英语','政治','地理','历史'}
>>> A & B
{'英语', '语文', '数学'}

        方法2——使用intersection()方法:

>>> A = {'数学','语文','英语','物理','化学','生物'}
>>> B = {'数学','语文','英语','政治','地理','历史'}
>>> A.intersection(B)
{'英语', '语文', '数学'}

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

2. 并集

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

        方法1——使用‘|’运算符

>>> A = {'数学','语文','英语','物理','化学','生物'}
>>> B = {'数学','语文','英语','政治','地理','历史'}
>>> A | B
{'英语', '物理', '语文', '政治', '化学', '数学', '生物', '地理', '历史'}

        方法2——使用union()方法

>>> A = {'数学','语文','英语','物理','化学','生物'}
>>> B = {'数学','语文','英语','政治','地理','历史'}
>>> A.union(B)
{'英语', '物理', '语文', '政治', '化学', '数学', '生物', '地理', '历史'}

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

3. 差集

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

        方法1——使用‘-’运算符

>>> A = {'数学','语文','英语','物理','化学','生物'}
>>> B = {'数学','语文','英语','政治','地理','历史'}
>>> A - B
{'物理', '生物', '化学'}
>>> B - A
{'政治', '历史', '地理'}

        方法2——使用difference()方法

>>> A = {'数学','语文','英语','物理','化学','生物'}
>>> B = {'数学','语文','英语','政治','地理','历史'}
>>> A.difference(B)
{'物理', '生物', '化学'}
>>> B.difference(A)
{'政治', '历史', '地理'}

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

4. 总结

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

 



本文固定URL:https://www.dotcpp.com/course/250

第一章 人生苦短,我用Python
第二章 Python基础语法
第三章 Python入门语法
第四章 Python核心语法
第五章 函数
第六章 面向对象编程
第七章 模块
第八章 异常处理和程序调试
第九章 文件及目录操作
第十章 GUI编程
第十一章 进程和线程
第十二章 数据库管理
第十三章 算法
第十四章 爬虫
第十五章 实战篇
第十六章 后记
Dotcpp在线编译      (登录可减少运行等待时间)