python set集合的基本运算
冻结的集合
一般的集合set都是可原处修改的集合。还有一种集合,不能在原处修改。
这种集合的创建方法是: frozenset(“hiekay”)
>>> f_set = frozenset("hiekay") #看这个名字就知道了frozen,冻结的set
>>> f_set
frozenset(['h', 'i', 'e', 'k', 'a','y'])
>>> f_set.add("python") #报错
Traceback (most recent call last):File "<stdin>", line 1, in <module>
AttributeError: 'frozenset' object has no attribute '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" in aset
False
>>> "h" in aset
True
集合与集合的关系
假设两个集合A、B
- A是否等于B,即两个集合的元素完全一样
在交互模式下实验
>>> a = set("abcde")
>>> b = set("abfgh")
>>> a
set(['a', 'b', 'c', 'd', 'e'])
>>> b
set(['a', 'b', 'f', 'g', 'h'])
>>> a == b
False
>>> a != b
True
- A是否是B的子集,或者反过来,B是否是A的超集。即A的元素也都是B的元素,但是B的元素比A的元素数量多。
实验:
>>> c = set("ab")
>>> a
set(['a', 'c', 'b', 'e', 'd'])
>>> c
set(['a', 'b'])
>>> c<a #c是a的子集
True
>>> c.issubset(a) #或者用这种方法,判断c是否是a的子集
True
>>> a.issuperset(c) #判断a是否是c的超集
True>>> b
set(['a', 'h', 'b', 'g', 'f'])
>>> a<b #a不是b的子集
False
>>> a.issubset(b) #或者这样做
False
- A、B的并集,即A、B所有元素,如下图所示
>>> a
set(['a', 'c', 'b', 'e', 'd'])
>>> b
set(['a', 'h', 'b', 'g', 'f'])
>>> a | b #可以有两种方式,结果一样
set(['a', 'c', 'b', 'e', 'd', 'g', 'f', 'h'])
>>> a.union(b)
set(['a', 'c', 'b', 'e', 'd', 'g', 'f', 'h'])
- A、B的交集,即A、B所公有的元素,如下图所示
>>> a
set(['a', 'c', 'b', 'e', 'd'])
>>> b
set(['a', 'h', 'b', 'g', 'f'])
>>> a & b #两种方式,等价
set(['a', 'b'])
>>> a.intersection(b)
set(['a', 'b'])
实验:
>>> a and b
set(['a', 'h', 'b', 'g', 'f'])
- A相对B的差(补),即A相对B不同的部分元素,如下图所示
>>> a
set(['a', 'c', 'b', 'e', 'd'])
>>> b
set(['a', 'h', 'b', 'g', 'f'])
>>> a - b
set(['c', 'e', 'd'])
>>> a.difference(b)
set(['c', 'e', 'd'])
-A、B的对称差集,如下图所示
>>> a
set(['a', 'c', 'b', 'e', 'd'])
>>> b
set(['a', 'h', 'b', 'g', 'f'])
>>> a.symmetric_difference(b)
set(['c', 'e', 'd', 'g', 'f', 'h'])
以上是集合的基本运算。
python set集合的基本运算相关推荐
- python集合的基本运算
集合的基本运算--交并差 #集合交集(取重复) jihe={'11','12''46','89','35'} jihe1={'12','38','89','97','11'} #intersectio ...
- Python的集合set
set是python中一个无序且无重复元素的数据结构.无序,是因为set采用了hash技术进行元素的存储:无重复元素,本身就是set区别其他数据结构的一个重要特点,也是set之间能够进行并,交,差等各 ...
- python 获取集合里面的某一个元素
python 获取集合里面的某一个元素,想想呢集合是不支持所以,切片,相加,相乘操作的, 所以想获取集合里面的某一个元素需要转化下思路,比如把即可转成列表然后在利用索引获取 例如: list_a = ...
- 初等数学O 集合论基础 第一节 集合及其基本运算、de Moivre公式
初等数学O 集合论基础 第一节 集合及其基本运算.de Moivre公式 写在前面 初等数学这个系列是为高中升理工科的学生以及低年级新生准备的衔接内容,主要的目的是对进入大学前12年学过的数学知识(初 ...
- Python 3 集合基础和概念!
Python 3 集合基础和概念! Python 3中,集合是无序的,所以不能进行切片和索引操作. 创建集合有两个方法:set()方法创建的集合是可变的,可被迭代的:frozenset()方法创建的集 ...
- python set集合内部实现_Python 实现集合Set的示例
Python的集合set原理 集合(set)是一个无序的不重复元素序列. 可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } ...
- python文件下载器代码_GitHub - applechi/pythonCollection: python代码集合(文件下载器、pdf合并、极客时间专栏下载、掘金小册下载、新浪微博爬虫等)...
json2mysql 这次更新了将一个json文件中的数据导入到mysql的脚本. 是用nodejs写的. 对应的文件是tomysql.js 有兴趣的同志可以研究下. pythonCollection ...
- python renamer模块_【免费工具集】4种免费Maya Python脚本集合:重命名、检查UV、分配重叠模型、选边,尽在EL Tool Pack...
原标题:[免费工具集]4种免费Maya Python脚本集合:重命名.检查UV.分配重叠模型.选边,尽在EL Tool Pack DENG工作室Senior build TD的Erik Lehmann ...
- Python frozenset 集合 - Python零基础入门教程
目录 一.Python frozenset 集合语法 二.Python frozenset 集合使用 三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> P ...
最新文章
- 强度光照模块rimg02 BH1750光度传感器模块
- 元宇宙该如何发展才不会变为泡沫
- vsflexgrid单元格换行后自动使用行高_「Excel技巧」Excel关于换行的技巧,你懂多少?...
- 虎扑签约神策数据,媒体 + 电商数据新玩法
- operator.ne_Python operator.ne()函数与示例
- 【ES8(2017)】async / await
- hadoop 实战练习_hadoop实战(二)
- 实例分割模型Mask R-CNN详解——从R-CNN,Fast R-CNN,Faster R-CNN再到Mask R-CNN
- 基于visual Studio2013解决面试题之1102合并字符串
- 计算机二级系统环境,计算机等级二级Java考试辅导:“系统和环境”单元综合复习...
- Qt创建ui界面/界面关联类和LNK2001
- Android——GSON解析JSON
- 没想到印度年轻人这么惨!我们知足吧!
- 获取浏览器的地理位置信息
- DELPHI7对日期格式的处理
- 短址服务实现的一些算法
- Django项目QQ登录后端接口实现
- 微型计算机主要技术指标是啥,微型计算机的主要技术指标
- 安卓Android校园综合服务系统校园帮app
- 计算机五大部件相关知识
热门文章
- 解决Required request body is missing:....
- 【代码随想录】数组刷题
- 媒体揭露互联网“账号黑市”:百倍暴利
- ❤唯美满天星❤ html+css+js炫酷3D相册(含音乐/可自定义文字)程序员表白必备
- 腾讯技术工程 2019 年十大最受欢迎文章出炉!
- 视觉SLAM笔记(53) g2o 操作后端优化
- 友推SDK微信分享问题
- 打造稳定可靠聪明的智慧酒店系统
- SpringBoot与knif4j学习
- B站离线多机房架构实践