京公网安备 11010802034615号
经营许可证编号:京B2-20210330
深入解析Python中的集合类型操作符
1)标准类型操作符(所有的集合类型)
成员关系 (in, not in)
就序列而言,Python中的in和not in操作符决定某个元素是否是一个集合中的成员。
集合等价/不等价
等价/不等价被用于在相同或不同的集合之间做比较。两个集合相等是指,对每个集合而言,当且仅当其中一个集合中的每个成员同时也是另一个集合中的成员。也可以说每个集合必须是另一个集合的一个子集, 即s <= t 和s>= t 的值均为真(True),或(s <= t and s>= t) 的值为真(True)。集合等价/不等价与集合的类型或集合成员的顺序无关,只与集合的元素有关。
子集/超集
set用Python的比较操作符检查某集合是否是其他集合的超集或子集。“小于”符号(<、<=)用来判断子集,“大于”符号(>、 >= )用来判断超集。“小于” 和 “大于”意味着两个集合在比较时不能相等。等于号允许非严格定义的子集和超集。
set支持严格( < )子集和非严格 ( <= ) 子集,也支持严格( > )超集和非严格 ( >= )超集。只有当第一个集合是第二个集合的严格子集时,我们才称第一个集合“小于”第二个集合。同理,只有当第一个集合是第二个集合的严格超集时,我们才称第一个集合“大于”第二个集合。
对象值的比较
任何相同类型的对象都可以比较,格式为:a == b,在python2.3之前类型不具有布尔值,返回值为1 0;2.3版本之后返回只为 True False
对象身份的比较
obj1 is obj2 --obj 与obj2是同一个对象 return True False
obj1 is not obj2 --obj 与obj2是同一个对象 return True False
布尔类型--python中的与、或、非
布尔类型的优先级依次为:not
and
or
--实现功能为逻辑 非 与 或
标准类型的内建函数
cmp(obj1, obj2)--1>2 return i>0
1<2 return i<0
1==2 return i=0
repr(obj)/repr('obj')--返回一个对象的字符串表示
str(obj)--返回对象可读性好的字符串表示
type(obj)--返回对象的类型
(2)集合类型操作符(所有的集合类型)
联合( | )
联合(union)操作和集合的 OR(又称可兼析取(inclusive disjunction))其实是等价的,两个集合的联合是一个新集合,该集合中的每个元素都至少是其中一个集合的成员,即属于两个集合其中之一的成员。联合符号有一个等价的方法:union()。
交集( & )
可以把交集操作比做集合的AND(或合取)操作。两个集合的交集是一个新集合,该集合中的每个元素同时是两个集合中的成员,即属于两个集合的成员。交集符号有一个等价的方法:intersection()。
差补/相对补集( – )
两个集合(s 和 t)的差补或相对补集是指一个集合 C,该集合中的元素,只属于集合 s,而不属于集合 t。差符号有一个等价的方法:difference()。
对称差分( ^ )
和其他的布尔集合操作相似,对称差分是集合的XOR(又称“异或” (exclusive disjunction))。两个集合(s 和 t)的对称差分是指另外一个集合C,该集合中的元素,只能是属于集合 s 或者集合t的成员,不能同时属于两个集合。对称差分有一个等价的方法:symmetric_difference()。
混合集合类型操作
如果左右两个操作数的类型相同,既都是可变集合或不可变集合,则所产生的结果类型是相同的。但如果左右两个操作数的类型不相同(左操作数是 set,右操作数是 frozenset,或相反情况),则所产生的结果类型与左操作数的类型相同 。
注意:加号不是集合类型的运算符。
>>> t | s
frozenset(['c', 'b', 'e', 'h', 'k', 'o', 'p', 's'])
>>> t ^ s
frozenset(['c', 'b', 'e', 'k', 'p'])
>>> s | t
set(['c', 'b', 'e', 'h', 'k', 'o', 'p', 's'])
>>> s ^ t
set(['p', 'b', 'e', 'k', 'c'])
(3)集合类型操作符(仅适用于可变集合)
(Union) Update ( |= )
这个更新方法从已存在的集合中添加(可能多个)成员,此方法和update()等价。
>>> s = set('cheeseshop')
>>> s |= set('pypi')
>>> s
set(['c', 'e', 'i', 'h', 'o', 'p', 's', 'y'])
保留/交集更新( &= )
保留(或交集更新)操作保留与其他集合的共有成员,此方法和 intersection_update()等价。
差更新 ( –= )
对集合s和t进行差更新操作s-=t,差更新操作会返回一个集合,该集合中的成员是集合s去除掉集合t中元素后剩余的元素。此方法
和difference_update()等价。
对称差分更新( ^= )
对集合s和t进行对称差分更新操作(s^=t),对称差分更新操作会返回一个集合,该集合中的成员仅是原集合s或仅是另一集合t中的成员。此方法和symmetric_difference_update()等价。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
主讲人简介 张冲,海归统计学硕士,CDA 认证数据分析师,前云南白药集团资深数据分析师,自媒体 Python 讲师,全网课程播放量破 ...
2026-04-10在数据可视化与业务分析中,同比分析是衡量业务发展趋势、识别周期波动的核心手段,其核心逻辑是将当前周期数据与上年同期数据进 ...
2026-04-10在机器学习模型的落地应用中,预测精度并非衡量模型可靠性的唯一标准,不确定性分析同样不可或缺。尤其是在医疗诊断、自动驾驶、 ...
2026-04-10数据本身是沉默的,唯有通过有效的呈现方式,才能让其背后的规律、趋势与价值被看见、被理解、被运用。统计制图(数据可视化)作 ...
2026-04-10在全球化深度发展的今天,跨文化传播已成为连接不同文明、促进多元共生的核心纽带,其研究核心围绕“信息传递、文化解读、意义建 ...
2026-04-09在数据可视化领域,折线图是展示时序数据、趋势变化的核心图表类型之一,其简洁的线条的能够清晰呈现数据的起伏规律。Python ECh ...
2026-04-09在数据驱动的时代,数据分析早已不是“凭经验、靠感觉”的零散操作,而是一套具备固定逻辑、标准化流程的系统方法——这就是数据 ...
2026-04-09长短期记忆网络(LSTM)作为循环神经网络(RNN)的重要改进模型,凭借其独特的门控机制(遗忘门、输入门、输出门),有效解决了 ...
2026-04-08在数据分析全流程中,数据质量是决定分析结论可靠性的核心前提,而异常值作为数据集中的“异类”,往往会干扰统计检验、模型训练 ...
2026-04-08在数字经济飞速发展的今天,数据已渗透到各行各业的核心场景,成为解读趋势、优化决策、创造价值的核心载体。而数据分析,作为挖 ...
2026-04-08在数据分析全流程中,数据处理是基础,图形可视化是核心呈现手段——前者负责将杂乱无章的原始数据转化为干净、规范、可分析的格 ...
2026-04-07在数据分析与统计推断中,p值是衡量假设检验结果显著性的核心指标,其本质是在原假设(通常为“无效应”“无差异”)成立的前提 ...
2026-04-07在数字经济深度渗透的今天,数据已成为企业生存发展的核心资产,企业的竞争本质已转变为数据利用能力的竞争。然而,大量来自生产 ...
2026-04-07Python凭借简洁的语法、丰富的生态库,成为算法开发、数据处理、机器学习等领域的首选语言。但受限于动态类型、解释性执行的特性 ...
2026-04-03在深度学习神经网络中,卷积操作是实现数据特征提取的核心引擎,更是让模型“看懂”数据、“解读”数据的关键所在。不同于传统机 ...
2026-04-03当数字化转型从企业的“战略口号”落地为“生存之战”,越来越多的企业意识到,转型的核心并非技术的堆砌,而是数据价值的深度挖 ...
2026-04-03在日常办公数据分析中,数据透视表凭借高效的汇总、分组功能,成为Excel、WPS等办公软件中最常用的数据分析工具之一。其中,“计 ...
2026-04-02在数字化交互的全场景中,用户的每一次操作都在生成动态的行为轨迹——电商用户的“浏览商品→点击详情→加入购物车”,内容APP ...
2026-04-02在数字化转型深度推进的今天,企业数据已成为驱动业务增长、构建核心竞争力的战略资产,而数据安全则是守护这份资产的“生命线” ...
2026-04-02在数据驱动决策的浪潮中,数据挖掘与数据分析是两个高频出现且极易被混淆的概念。有人将二者等同看待,认为“做数据分析就是做数 ...
2026-04-01