课时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( )对集合进行浅复制

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

相关文章
|
人工智能 IDE 程序员
GitHub Copilot 免费了!程序员们的福音来了!
《GitHub Copilot 免费了!程序员们的福音来了!》 近日,GitHub 宣布其 AI 编程助手 GitHub Copilot 现在可以免费使用。曾经每月需支付 10 美元订阅费的 Copilot,现在向所有人开放免费版本,这对个人开发者、初学者和小型团队来说是个大好消息。免费版支持 GPT 和 Claude 模型,并提供每月 2000 次代码补全和 50 条聊天消息等核心功能。用户只需注册或登录 GitHub 账户,在 VS Code 中安装扩展并激活免费版即可使用。此外,Visual Studio Code 也完全免费,进一步降低了开发门槛。 除了
12945 7
GitHub Copilot 免费了!程序员们的福音来了!
|
Java UED Spring
Springboot通过SSE实现实时消息返回
通过Spring Boot实现SSE,可以简单高效地将实时消息推送给客户端。虽然SSE有其限制,但对于许多实时消息推送场景而言,它提供了一种简洁而强大的解决方案。在实际开发中,根据具体需求选择合适的技术,可以提高系统的性能和用户体验。希望本文能帮助你深入理解Spring Boot中SSE的实现和应用。
6959 1
|
监控 安全 数据安全/隐私保护
安全策略之授权 (Authorization)
【8月更文挑战第12天】
837 2
|
消息中间件 SQL 监控
ETL的灵魂:调度系统
ETL的灵魂:调度系统
3113 1
|
数据安全/隐私保护 流计算
【计算机网络】数据链路层 : ALOHA 协议 ( 纯 ALOHA 协议 | 时隙 ALOHA 协议 )
【计算机网络】数据链路层 : ALOHA 协议 ( 纯 ALOHA 协议 | 时隙 ALOHA 协议 )
1991 0
|
前端开发 JavaScript API
使用reveal.js制作精美的网页版PPT
最近在做季度总结和技术分享,所以需要做个PPT, 来回顾这半年来的技术贡献. 但苦于mac上运行PPT那感人的流畅度, 成功的激起了笔者的强迫症, 所以索性想办法通过技术的手段来做个网页版PPT, 这个时候笔者发现了reveal.js: 一个使用 HTML 语言制作演示文稿的 Web 框架,支持插入多种格式的内容,并以类似 PPT 的形式呈现. 花了15分钟系统的调研了一下, 觉得基本满足技术分享类PPT的要求, 所以决定采用该方案来实现我的网页版PPT. 这里列一下笔者的技术调研方法论, 供大家参考:
954 0
|
小程序 安全 API
微信支付-全面详解(学习总结---从入门到深化)(上)
微信支付(https://pay.weixin.qq.com)是腾讯集团旗下中国领先 的第三方支付平台,一直致力于为用户和企业提供安全、便捷、专业的在线支付服务。
1553 0
微信支付-全面详解(学习总结---从入门到深化)(上)
|
机器学习/深度学习 自然语言处理 算法
NLP中的预处理:使用Python进行文本归一化(一)
NLP中的预处理:使用Python进行文本归一化(一)
912 0
NLP中的预处理:使用Python进行文本归一化(一)
|
搜索推荐 数据管理 关系型数据库
为了学习英语,我开发了一个单词对战系统
本系统主要由Android、服务端、数据管理端构成。客户端的页面实现通过网络与服务器REST API接口通信获取 MySQL数据。本人重点参与网上单词对战系统客户端、服务器以及数据库的设计、开发、测试工作。
527 0
为了学习英语,我开发了一个单词对战系统
|
存储 JSON Kubernetes
openshift Tekton pipeline 实践
openshift Tekton pipeline 实践

热门文章

最新文章