美文网首页
python集合的运算(交集、并集、差集、补集)

python集合的运算(交集、并集、差集、补集)

作者: 忘了呼吸的那只猫 | 来源:发表于2020-06-16 11:22 被阅读0次

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

某学校有两个班级,班级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)
{'英语', '物理', '语文', '政治', '化学', '数学', '生物', '地理', '历史'}

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

3. 差集

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

  • 方法1——使用‘-’运算符
>>> A = {'数学','语文','英语','物理','化学','生物'}
>>> B = {'数学','语文','英语','政治','地理','历史'}
>>> A - B
{'物理', '生物', '化学'}
>>> B - A
{'政治', '历史', '地理'}
  • 方法2——使用difference()方法
>>> A = {'数学','语文','英语','物理','化学','生物'}
>>> B = {'数学','语文','英语','政治','地理','历史'}
>>> A.difference(B)
{'物理', '生物', '化学'}
>>> B.difference(A)
{'政治', '历史', '地理'}

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

3. 补集

  • 使用^运算符
>>> A = {'数学','语文','英语','物理','化学','生物'}
>>> B = {'数学','语文','英语','政治','地理','历史'}
>>> A ^ B
{'历史', '地理', '生物', '物理', '政治', '化学'}
  1. 总结

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

相关文章

  • python集合的运算(交集、并集、差集、补集)

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

  • 集合运算

    集合运算: 并集: union (只取一遍)/union all (交集取两遍) 交集: intersect 差集...

  • 集合

    集合的运算,交集,并集,。。。。。

  • Python精简入门学习(十三)

    Python精简入门学习之集合 -set -创建集合 -添加操作 -清空操作 -差集操作 -交集操作 -并集操作 ...

  • 抽象代数简介

    集合 交集·并集·差集 在中学阶段就学习过集合,部分内容不再赘述。以下是交集、并集、差集的概念: 幂集 设是一个集...

  • 集合常用方法

    CollectionUtils 判断集合是否为空 判断集合是否不为空 集合是否相等 集合的交集、并集、补集、交集的...

  • Guava 学习

    guava Splitter 学习 guava Sets 集合类取交集、差集、并集

  • python usage with bioinformatics

    数据类型转换 集合:交集、并集、差补、对称差分相比有序的列表,集合对象是无序的,已经是Python的基本数据类型,...

  • python中集合set的操作

    交集 并集 差集 对称差集

  • es6求数组的并集,交集,差集,并集升序,并集降序

    求数组的交集,差集,并集,并集升序,并集降序 对...扩展运算符不熟悉的可以参考我的文章 es6 ...扩展运算符...

网友评论

      本文标题:python集合的运算(交集、并集、差集、补集)

      本文链接:https://www.haomeiwen.com/subject/ynplxktx.html