课时19:集合的介绍

简介: 集合是Python中一种不可重复且无序的数据结构,用于存储唯一的元素。其主要特点包括:1. 唯一性:集合中的元素不能重复。2. 无序性:元素的顺序不按插入顺序保存。3. 不可变对象:只能存储不可变类型(如字符串、数字、元组),不能存储列表或字典等可变对象。

集合的介绍

 

摘要:本内容为集合的介绍内容。

 

01.集合内容的基础介绍


1.1集合内容的基础信息

集合(Set)集合和列表非常相似直接向对象中存储数据,但是也有不同。

不同点:

1.集合中只能存储不可变对象例如字符串,数字,元组,None,True,False在集合中可以存储。若向集合中加入字典,做个列表是不可行的。

2.集合中存储的对象是无序无序是相对于列表而言,在列表中存储数据,第一个数据放在所有位为零的位置,第二个数据放在所有为1的位置,以此类推,每个数据位置是按照所存的数据保存的。集合中不一样,第一个数据可能放在第四个,第二个放在第五个,顺序都是乱的,实际上他不是无需的。(不是按照元素的插入顺序保存)顺序与插入顺序无关。

3.集合中不能出现重复的元素集合中不能出现两个一,两个二,两个三,两个Hello,两个ABC,不能出现重复因素,元素都是唯一的。

几何与列表很像,也有很多不同点。

查找文档:

image.png

image.png

进入有相关集合的介绍,自行浏览查阅。

创建文件:

image.png

 

1.2集合的特点

集合

(1)使用{ }来创建集合

S={1,2,3,4} #<Class 'Set'>  这就是一个集合
Print(s type(s))

保存执行:

image.png

若为如下:

S={10,3,5,1,2}
Print(s type(s))

保存执行:

image.png

与插入顺序不一样,所说的无序数据保存的顺序与插入的顺序不同,这就是无序。

这就是集合的创建,非常简单,使用大括号。

S={10,3,5,1,2,1,2,3,1,1,1,1}
Print(s type(s))

保存执行:

image.png

仅有一个1,因为集合当中元素不能够重复。所有重复的都会被去除。

S={[1,2,3],[4,6,7]}  TypeError:unhashable type:'list'
//在集合中保存列表
Print(s type(s))

保存执行:

image.png

报错,集合中只能存储不可变对象,列表是不可行的,只能存储数字、字符串这些,不然会报错。

若想创建空集合

S={ } 这不是空集合,这是字典。若想创建空集合,必须使用第二种set( )方法,如下。

(2)使用Set( )函数来创建集合

S=Set( )  //这是一个空集合

保存执行:此为空集合

image.png

(3)可以通过Set( )来将序列和字典转换为集合

S=Set([1,2,3,4,5,1,1,2,3,4,5])

保存执行:

image.png

重复的数字都去除,将上述列表转换为集合,书写为元组也是可行的,或者使用字符串。

S=Set(’Hello’)

保存执行:

image.png

集合中数字是不可重复的,并且是无序的,与插入顺序没有关系会自动排序。

S=Set({'a':1,b':2,'c':3})

保存执行:

image.png

使用Set( )将字典转换为集合时,只会包含字典中的键

(4)创建集合

S={'a','b',1,2,3}

保存执行:

image.png

测试集合是否通过索引来进行:

Print(s,type(s))
Print(s[0])

保存执行:

image.png

报错,集合不能够通过索引来操作,若想必须转化为列表。

如下:

Print(1ist(s)[0])

保存执行:

image.png

(5)使用In和Not in来检查集合中的元素

Print('a' in  s)

保存执行:

image.png

Print('c' in  s)

保存执行:

image.png

(6)使用Len( )来获取集合中元素的数量

Print(len(s))

保存执行:重复的元素,会自动去重

image.png

部分情况下想加入元素进入集合。

Print(s type(s))

保存执行:

image.png

(7)add( )向集合中添加元素

S.add(10)

保存执行:添加成功

image.png


S.add(30)

保存执行:添加成功

image.png

再次进行:

S.add(30)

保存执行:30已经添加了,就加不进去了

  image.png

 

查看是否有返回值:

Print(s.add(30))

保存执行:此处没有返回值

image.png

(8)Update( )将一个集合中的元素添加到当前集合中

S2=set('hello')
S. update(s2)

执行结果:S2为元素添加至S中,和字典的 Update一模一样

image.png

传元组:S.update((10,20,30,40))

保存执行:

image.png

S.update((10,20,30,40,50))

保存执行:

image.png

此处并不仅能传集合,序列也可行。

传字典:S.update({10:'ab',20:'bc',100:'cd',1000:'ef'})

保存执行:

image.png

注意:Update( )可以传递序列或字典作为参数,字典只会使用键

(9 )Pop( )随机删除一个集合中的元素

S.pop( )

保存执行:

image.png

再次S.pop( )

保存执行:

image.png

再次S.pop( )

保存执行:

image.png

数字顺序由Phyon解释器自行排序,无法控制,删除数据对于学习者为随机的。

Result =s.pop( )
Print(result)

保存执行:

image.png

再次:

Result =s.pop( )
Result =s.pop( )
Print(result)

保存执行:

image.png

Pop( )随机删除并返回一个集合中的元素

(10)Remove()删除集合中的指定元素

Result=s.remove(100)

保存执行:

image.png

S.remove(100)

S.remove(1000)

保存执行:

image.png

(11)Clear( )清空集合

S.clear( )

保存执行:变成空集合

image.png

(12)Copy( )对集合进行浅复制

以上是集合的常用方法,总之集合是一个不可重合的序列,其中的元素是不可重复的,列表中的元素是唯一的,可选择使用集合,整体而言,使用不多。

相关文章
|
9月前
|
Python
课时20:集合的运算
本内容介绍集合的运算,涵盖交集、并集、差集、异或集及子集等概念。通过Python代码示例详细说明各运算符(如 &、|、-、^、&lt;=、&lt;、&gt;=、&gt;)的使用方法,并解释其在实际编程中的应用。重点在于理解集合运算的基本原理及其在编程中的实现,帮助读者掌握集合运算的基础知识。
|
9月前
|
机器学习/深度学习 存储 设计模式
Python 高级编程与实战:深入理解性能优化与调试技巧
本文深入探讨了Python的性能优化与调试技巧,涵盖profiling、caching、Cython等优化工具,以及pdb、logging、assert等调试方法。通过实战项目,如优化斐波那契数列计算和调试Web应用,帮助读者掌握这些技术,提升编程效率。附有进一步学习资源,助力读者深入学习。
|
9月前
|
JSON 自然语言处理 前端开发
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
502 72
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
|
9月前
|
存储 NoSQL MongoDB
枫叶互动携手阿里云和MongoDB:数据赋能音视频娱乐新业态
枫叶互动携手阿里云和MongoDB:数据赋能音视频娱乐新业态
枫叶互动携手阿里云和MongoDB:数据赋能音视频娱乐新业态
|
10月前
|
存储 缓存 资源调度
全局缓存yarn
在现代前端开发中,Yarn 是重要的包管理工具。本文为初学者详细介绍如何实现“全局缓存 Yarn”,包括安装 Yarn、配置全局缓存路径及验证配置是否成功。通过设置缓存路径(如 `~/.cache/yarn`),避免重复下载相同包,提升开发效率并节省网络带宽。最后通过安装和验证包(如 lodash)确保配置有效。良好的包管理习惯对项目维护至关重要。
283 1
全局缓存yarn
|
9月前
|
机器学习/深度学习 人工智能 量子技术
量子计算的商业化前景:未来科技的颠覆性力量
量子计算的商业化前景:未来科技的颠覆性力量
505 17
|
9月前
|
机器学习/深度学习 数据采集 算法
基于PSO粒子群优化的CNN-LSTM-SAM网络时间序列回归预测算法matlab仿真
本项目展示了基于PSO优化的CNN-LSTM-SAM网络时间序列预测算法。使用Matlab2022a开发,完整代码含中文注释及操作视频。算法结合卷积层提取局部特征、LSTM处理长期依赖、自注意力机制捕捉全局特征,通过粒子群优化提升预测精度。适用于金融市场、气象预报等领域,提供高效准确的预测结果。
|
9月前
|
存储 传感器 缓存
java变量与数据类型:整型、浮点型与字符类型
### Java数据类型全景表简介 本文详细介绍了Java的基本数据类型和引用数据类型,涵盖每种类型的存储空间、默认值、取值范围及使用场景。特别强调了`byte`、`int`、`long`、`float`、`double`等基本类型在不同应用场景中的选择与优化,如文件流处理、金融计算等。引用数据类型部分则解析了`String`、数组、类对象、接口和枚举的内存分配机制。
318 15
|
9月前
|
设计模式 机器学习/深度学习 前端开发
Python 高级编程与实战:深入理解设计模式与软件架构
本文深入探讨了Python中的设计模式与软件架构,涵盖单例、工厂、观察者模式及MVC、微服务架构,并通过实战项目如插件系统和Web应用帮助读者掌握这些技术。文章提供了代码示例,便于理解和实践。最后推荐了进一步学习的资源,助力提升Python编程技能。
|
9月前
|
算法 数据安全/隐私保护
基于Big-Bang-Big-Crunch(BBBC)算法的目标函数最小值计算matlab仿真
该程序基于Big-Bang-Big-Crunch (BBBC)算法,在MATLAB2022A中实现目标函数最小值的计算与仿真。通过模拟宇宙大爆炸和大收缩过程,算法在解空间中搜索最优解。程序初始化随机解集,经过扩张和收缩阶段逐步逼近全局最优解,并记录每次迭代的最佳适应度。最终输出最佳解及其对应的目标函数最小值,并绘制收敛曲线展示优化过程。 核心代码实现了主循环、粒子位置更新、适应度评估及最优解更新等功能。程序运行后无水印,提供清晰的结果展示。
230 14