Python学习笔记 - 探索集合Set的9种计算

news/2024/10/17 19:35:00/

欢迎各位亲朋好友,我是你们的老朋友,Mr数据杨。今天我们的主题是“玩转Python集合”,我们会像战场上的三国将领一样,运筹帷幄,巧妙应对各种集合操作。

想象一下,你是一个谋略高人,比如诸葛亮,你的手下有着各种各样的将领,他们就是你的“集合”。有时你需要将两个队伍合并,一起对抗曹操,这就像是我们在Python中计算“集合并集”。有时你需要找出你和刘备共有的将领,就像我们计算“集合交集”。而当你想知道与孙权相比,自己手下有哪些独有的将领时,你就在计算“集合之间的差异”。

当然,你可能也想知道自己和孙权的非共有将领,这就是我们要计算的“集合间的对称差”。那么如何判断两位君主是否有共享的将领呢?那就看看他们的“集合”是否包含相同的元素。

判断刘备的势力是否已经成为你势力的一部分,就像判断一个“集合”是否是另一个“集合”的子集。如果刘备的全部将领都在你的麾下,但你还有别的将领,那他就是你的“真子集”。反过来,如果你能包揽刘备和孙权所有的将领,你就成为他们的“超集”,如果你还有其他人,你甚至成为他们的“真超集”。

这就是今天我们将要探讨的Python集合操作,我们像诸葛亮一样,用智谋与策略,管理好我们的“集合”!接下来,让我们跟随笔记的脚步,一起进入集合的世界,学习这些实用的Python技巧!

文章目录

  • 计算集合并集
  • 计算集合交集
  • 计算集合之间差异
  • 计算集合间对称差
  • 判断两个集合是否包含相同的元素
  • 判断一个集合是否是另一个集合的子集
  • 判断一个集合是否是另一个集合的真子集
  • 判断一个集合是否是另一个集合的超集
  • 判断一个集合是否是另一个集合的真超集

计算集合并集

并集操作可以将两个或多个集合的元素合并为一个集合,去除重复元素。

x1 = {'曹操', '孫権', '劉備'}
x2 = {'劉備', '司馬懿', '董卓'}x1.union(x2)
# 输出: {'劉備', '董卓', '司馬懿', '孫権', '曹操'}x1 | x2
# 输出: {'劉備', '董卓', '司馬懿', '孫権', '曹操'}

多个集合的合并操作可以使用union()函数或|运算符。

a = {1, 2, 3, 4}
b = {2, 3, 4, 5}
c = {3, 4, 5, 6}
d = {4, 5, 6, 7}a.union(b, c, d)
# 输出: {1, 2, 3, 4, 5, 6, 7}a | b | c | d
# 输出: {1, 2, 3, 4, 5, 6, 7}

计算集合交集

交集操作可以获取两个或多个集合中共有的元素。

x1 = {'曹操', '孫権', '劉備'}
x2 = {'劉備', '司馬懿', '董卓'}x1.intersection(x2)
# 输出: {'劉備'}x1 & x2
# 输出: {'劉備'}

多个集合的交集操作可以使用intersection()函数或&运算符。

a = {1, 2, 3, 4}
b = {2, 3, 4, 5}
c = {3, 4, 5, 6}
d = {4, 5, 6, 7}a.intersection(b, c, d)
# 输出: {4}a & b & c & d
# 输出: {4}

计算集合之间差异

差集操作可以获取一个集合中除去与另一个集合共有的元素剩下的元素。

x1 = {'曹操', '孫権', '劉備'}
x2 = {'劉備', '司馬懿', '董卓'}x1.difference(x2)
# 输出: {'曹操', '孫権'}x2.difference(x1)
# 输出: {'董卓', '司馬懿'}

差集操作可以使用difference()函数或-运算符。

x1 - x2
# 输出: {'曹操', '孫権'}x2 - x1
# 输出: {'董卓', '司馬懿'}

多个集合的差集操作可以连续使用-运算符。

a = {1, 2, 3, 4}
b = {2, 3, 4, 5}
c = {3, 4, 5, 6}
d = {4, 5, 6, 7}a.difference(b, c, d)
# 输出: {1, 2, 3}a - b - c
# 输出: {1, 2, 3}

计算集合间对称差

对称差操作可以获取两个集合中互相没有的元素。

x1 = {'曹操', '孫権', '劉備'}
x2 = {'劉備', '司馬懿', '董卓'}x1.symmetric_difference(x2)
# 输出: {'曹操', '司馬懿', '董卓', '孫権'}x1 ^ x2
# 输出: {'曹操', '司馬懿', '董卓', '孫権'}

对称差操作可以使用symmetric_difference()函数或^运算符。

a = {1, 2, 3, 4, 5}
b = {10, 2, 3, 4, 50}
c = {1, 50, 100}a ^ b ^ c
# 输出: {100, 5, 10}

判断两个集合是否包含相同的元素

可以使用isdisjoint()方法判断两个集合是否没有共同的元素。如果两个集合没有共同元素,则返回True,否则返回False

x1 = {'曹操', '孫権', '劉備'}
x2 = {'劉備', '司馬懿', '董卓'}x1.isdisjoint(x2)
# 输出: Falsex2 - {'劉備'}
# 输出: {'董卓', '司馬懿'}x1.isdisjoint(x2 - {'劉備'})
# 输出: Truex1 = {1, 3, 5}
x2 = {2, 4, 6}x1.isdisjoint(x2)
# 输出: Truex1 & x2
# 输出: set()

判断一个集合是否是另一个集合的子集

可以使用issubset()方法判断一个集合是否是另一个集合的子集。如果是子集,则返回True,否则返回False。一个集合被认为是它自身的一个子集。

x1 = {'曹操', '孫権', '劉備'}x1.issubset({'曹操', '孫権', '劉備', '司馬懿', '董卓'})
# 输出: Truex2 = {'劉備', '司馬懿', '董卓'}
x1 <= x2
# 输出: Falsex = {1, 2, 3, 4, 5}
x.issubset(x)
# 输出: Truex <= x
# 输出: True

判断一个集合是否是另一个集合的真子集

可以使用<运算符判断一个集合是否是另一个集合的真子集。如果是真子集,则返回True,否则返回False

x1 = {'曹操', '孫権'}
x2 = {'曹操', '孫権', '劉備'}x1 < x2
# 输出: Truex1 = {'曹操', '孫権', '劉備'}
x2 = {'曹操', '孫権', '劉備'}x1 < x2
# 输出: Falsex = {1, 2, 3, 4, 5}
x < x
# 输出: False

判断一个集合是否是另一个集合的超集

可以使用issuperset()方法判断一个集合是否是另一个集合的超集。如果是超集,则返回True,否则返回False。一个集合被认为是它自身的一个超集,默认为自身超集。

x1 = {'曹操', '孫権', '劉備'}x1.issuperset({'曹操', '孫権'})
# 输出: Truex2 = {'劉備', '司馬懿', '董卓'}
x1 >= x2
# 输出: Falsex = {1, 2, 3, 4, 5}
x.issuperset(x)
# 输出: Truex >= x
# 输出: True

判断一个集合是否是另一个集合的真超集

可以使用>运算符判断一个集合是否是另一个集合的真超集。

如果是真超集,则返回True,否则返回False

x1 = {'曹操', '孫権', '劉備'}
x2 = {'曹操', '孫権'}x1 > x2
# 输出: Truex1 = {'曹操', '孫権', '劉備'}
x2 = {'曹操', '孫権', '劉備'}x1 > x2
# 输出: Falsex = {1, 2, 3, 4, 5}
x > x
# 输出: False

http://www.ppmy.cn/news/193284.html

相关文章

c++继承详解

前言 继承是类复用的重要方式&#xff0c;学习面向对象语言时学习继承是必不可少的&#xff0c;在c中继承机制一种较为复杂的机制&#xff0c;下面让我们一起来认识一下c中的继承。 目录 1.继承的概念和定义 1.1继承的概念 1.2 继承的定义 2.基类和派生类之间的转换 3.继承…

Linux :: 【简单开发篇 :: vim 编辑器:(1)】:: vim 编辑器的基本认识与三种 vim 常用模式 | 使用:打开编辑、退出保存关闭vim

前言&#xff1a;本篇是 Linux 基本操作篇章的内容&#xff01; 笔者使用的环境是基于腾讯云服务器&#xff1a;CentOS 7.6 64bit。 学习集&#xff1a; C 入门到入土&#xff01;&#xff01;&#xff01;学习合集Linux 从命令到网络再到内核&#xff01;学习合集 目录索引&am…

信息系统服务器品牌,星神信息发布系统十大品牌,打造办公楼智能化平台!

原标题&#xff1a;星神信息发布系统十大品牌&#xff0c;打造办公楼智能化平台&#xff01; 如今越来越多的企业的办公地点都是设立在商贸大厦里面&#xff0c;一座大厦里面至少20层&#xff0c;甚至有更高的。那么想要在大厦里面快速找到企业的具体地址就少不了有明确地指引。…

空调市场份额向前三强集中,能否改变市场格局关键在线上市场

新年伊始&#xff0c;空调市场就已出现了一丝火药味&#xff0c;中小空调品牌纷纷杀价&#xff0c;而前三强则强调自己的技术、品牌优势&#xff0c;从2018年的走势来看&#xff0c;在线下市场空调前三强占有的市场份额在提升&#xff0c;呈现强者恒强的趋势&#xff0c;柏颖科…

2020年招投标加分资质排行榜!

你想了解&#xff0c;2020年招投标加分资质证书排行榜是怎么排的&#xff1f;投标是时代的热潮&#xff0c;企业在参与投标的时候&#xff0c;都会面临竞争对手太多、太强的困扰&#xff0c;因此&#xff0c;投标企业唯有一路披荆斩棘&#xff0c;全力以赴才有机会中标&#xf…

七夕节送男朋友什么礼物、男生最渴望收到的礼物排行榜

马上就是一年中最浪漫的日子了——七夕节&#xff0c;作为中国传统节日中正大光明的情人节&#xff0c;也可以正大光明地给男朋友准备礼物秀恩爱了。既然是送男生礼物&#xff0c;那肯定就要送到对方的心坎上了&#xff0c;送对了他开心你也会很高兴&#xff0c;双赢的局面产生…

空调老大易主后,格力能否下定决心多元化?

文|智能相对论&#xff08;aixdlun&#xff09; 作者|佘凯文 上月&#xff0c;美的、海尔、格力三大白电巨头相继发布了去年及今年一季度的财报&#xff0c;几家欢喜几家愁&#xff0c;数据显示2020年&#xff0c;美的集团实现收入2857.10亿元&#xff0c;同比增长2.27%&…

计算机机房施工排名,机房监控十大品牌最新排名

在这个消费者追求品牌的时代里。行业“十大品牌”、“排行榜”是消费者首选。“品牌”&#xff0c;已经成为消费者挑选商品的一个重要标准。 关于2017年机房监控品牌如下&#xff1a;1.斯特纽 2 .大榕树 3.共济科技 4.融智兴华 5.广州云鹏 6.安之源 7.CREATE机房 8.尚为机房 9.…