跟老齐学Python之集合的关系
2023-06-13 09:15:46 时间
冻结的集合
前面一节讲述了集合的基本概念,注意,那里所涉及到的集合都是可原处修改的集合。还有一种集合,不能在原处修改。这种集合的创建方法是:
>>>f_set=frozenset("qiwsir")#看这个名字就知道了frozen,冻结的set >>>f_set frozenset(["q","i","s","r","w"]) >>>f_set.add("python")#报错 Traceback(mostrecentcalllast): File"<stdin>",line1,in<module> AttributeError:"frozenset"objecthasnoattribute"add" >>>a_set=set("github")#对比看一看,这是一个可以原处修改的set >>>a_set set(["b","g","i","h","u","t"]) >>>a_set.add("python") >>>a_set set(["b","g","i","h","python","u","t"])
集合运算
先复习一下中学数学(准确说是高中数学中的一点知识)中关于集合的一点知识,主要是唤起那痛苦而青涩美丽的回忆吧,至少对我是。
元素与集合的关系
元素是否属于某个集合。
>>>aset set(["h","o","n","p","t","y"]) >>>"a"inaset False >>>"h"inaset True
集合与集合的纠结
假设两个集合A、B
A是否等于B,即两个集合的元素完全一样
在交互模式下实验
>>>a set(["q","i","s","r","w"]) >>>b set(["a","q","i","l","o"]) >>>a==b False >>>a!=b True
A是否是B的子集,或者反过来,B是否是A的超集。即A的元素也都是B的元素,但是B的元素比A的元素数量多。
实验一下
>>>a set(["q","i","s","r","w"]) >>>c set(["q","i"]) >>>c<a#c是a的子集 True >>>c.issubset(a)#或者用这种方法,判断c是否是a的子集 True >>>a.issuperset(c)#判断a是否是c的超集 True >>>b set(["a","q","i","l","o"]) >>>a<b#a不是b的子集 False >>>a.issubset(b)#或者这样做 False
A、B的并集,即A、B所有元素,如下图所示
>>>a set(["q","i","s","r","w"]) >>>b set(["a","q","i","l","o"]) >>>a|b#可以有两种方式,结果一样 set(["a","i","l","o","q","s","r","w"]) >>>a.union(b) set(["a","i","l","o","q","s","r","w"])
A、B的交集,即A、B所公有的元素,如下图所示
>>>a set(["q","i","s","r","w"]) >>>b set(["a","q","i","l","o"]) >>>a&b#两种方式,等价 set(["q","i"]) >>>a.intersection(b) set(["q","i"])
我在实验的时候,顺手敲了下面的代码,出现的结果如下,看官能解释一下吗?(思考题)
>>>aandb set(["a","q","i","l","o"])
A相对B的差(补),即A相对B不同的部分元素,如下图所示
>>>a set(["q","i","s","r","w"]) >>>b set(["a","q","i","l","o"]) >>>a-b set(["s","r","w"]) >>>a.difference(b) set(["s","r","w"])
-A、B的对称差集,如下图所示
>>>a set(["q","i","s","r","w"]) >>>b set(["a","q","i","l","o"]) >>>a.symmetric_difference(b) set(["a","l","o","s","r","w"])
以上是集合的基本运算。在编程中,如果用到,可以用前面说的方法查找。不用死记硬背。
相关文章
- mt4 python_一个使用Python自动化交易外汇MT4脚本实现「建议收藏」
- python qt是什么_初识Python与Qt「建议收藏」
- Python入门系列(十)一篇学会python文件处理
- python数组拼接字符串_Python练习题——数组拼接
- python中sqrt函数用法_Python : sqrt() 函数
- Python ( )、[ ]、{}的区别「建议收藏」
- python 中os模块os.path.exists()含义
- 【说站】python partition如何分割字符串
- 【说站】Python yield关键字的应用限制
- Python 删除HDFS过期文件
- Python中优先级_低优先级队列不止5把
- python设置时间过期改变状态_Python Redis设置过期时间「建议收藏」
- 【原创】Python UI自动化测试之定位元素
- Python写脚本尝试loguru模块
- Python基础(十五):推导式的讲解
- Python 2018-2019 结课作业 总结
- python多进程编程-进程之间的关系
- Python frozenset集合(set集合的不可变版本)
- 计算时间差,时间加减运算python代码详解编程语言
- python基础2之字符串、列表、字典、集合详解编程语言
- Linux与Python:开拓者的新时代(linux和python)
- Python脚本实现Linux系统管理及自动化部署(python写linux)
- Python中int()函数的用法