版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
专题六元组、集合[考纲要求]1.了解元组的特性2.掌握元组的索引和切片操作3.了解元组函数4.掌握集合的创建5.了解集合的特性6.掌握集合的运算7.掌握集合的函数[课时安排]2课时[知识梳理]元组元组定义定义:元组的元素用逗号隔开,放在圆括号内。元组是不可变对象,元组一经创建其元素便不能被修改。如:(1,2,3)当元组中只包含一个元素时,需要在元素后面添加逗号,以防运算时被当作括号。>>>a=(1,2,3,4)>>>type(a)<class'tuple'>>>>b=(1)>>>type(b)<class'int'>>>>c=(1,)>>>type(c)<class'tuple'>元组和列表的比较:1.元组是不可变的数据类型而列表是可变的数据类型2.都支持索引和切片的操作3.元组的元素不可修改、删除创建元组#方法1tup1=()#方法2tup2=tuple()其中的tuple()函数就是元组的专用函数。可以通过调用tuple()函数来创建元组,通过调用tuple()函数还可以将字符串和列表、集合、字典转为元组。str1="hello"print(tuple(str1))#(‘h’,’e’,’l’,’l’,’o’)lst=[1,2,3,4]print(tuple(lst))#(1,2,3,4)元组封装与序列拆封1.元组封装元组封装是指以逗号分隔的多个值自动封装到一个元组中,例如:>>>a=1,2,3>>>a(1,2,3)>>>a=1,>>>a(1,)2.序列拆封序列拆封是元组封装的逆运算,可以用来将一个封装起来的元组对象自动拆分成若干个基本数据。例如:>>>x,y,z=(1,2,3)>>>x1>>>y2>>>z3上面的序列拆分操作要求赋值运算符左边的变量数目与右边序列中包含的数据数目相同,否则会出现ValueError错误!封装操作只能用于元组对象,而拆分操作不仅可以用于元组对象,还可以用于其他序列对象。元组连接和重复1.元组连接语法结构:元组1+元组2+…示例:>>>tup1=(1,2,3)>>>tup2=(4,5,6)>>>tup1+tup2(1,2,3,4,5,6)2.元组重复语法结构:元组*正整数/正整数*元组示例:>>>tup1=(1,2,3)>>>tup1*2(1,2,3,1,2,3)>>>2*tup1(1,2,3,1,2,3)常考类题:tup1=(1,2)tup2=(3,4,5)print(len(tup1*2+tup2*3))#13索引取值和切片赋值、元组比较元组是有序序列,因此索引取值和切片赋值的方法和列表的操作一模一样。元组比较,也是和列表的比较一样的使用成员运算符in来判断某个值是否存在于元组中总结:元组和列表的相似度很高,唯一不同的是元组不可变,列表是可变的数据类型。元组是不可变对象,是不允许修改元组中的元素值,如果试图通过赋值语句修改元组中的元素,将会出现TypeError的错误,同样,是不允许删除元组中的元素的。但是可以使用del语句来删除整个元组。>>>tup1=(1,2,3)>>>tup1[1]=20Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>TypeError:'tuple'objectdoesnotsupportitemassignment>>>deltup1[1]Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>TypeError:'tuple'objectdoesn'tsupportitemdeletion>>>deltup1>>>tup1Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>NameError:name'tup1'isnotdefined元组函数在Python中,元组(tuple)与列表类似,它们同属于有序的序列类型。不同的是元组是不可变对象,元组一经创建,其元素便不能被修改。tup.count(x)使用该方法可以返回元素x在元组中出现的次数。例如:>>>tup1=(1,2,3,4,5,6,1,2)>>>tup1.count(1)2>>>tup1.count(7)0tup.index(x[,start,end])使用该方法返回元素x在元组中第一次出现的索引值,如果元素x未包含在元组中,则会出现ValueError的错误。例如:>>>tup1=(1,2,3,4,5,6,1,2)>>>tup1.index(1)0>>>tup1.index(7)Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>ValueError:tuple.index(x):xnotintuple集合集合的定义集合是一些不重复的无序组合,集合分为可变集合和不可变集合。集合不记录元素的位置,因为对集合不能进行索引和切片等操作。注:我们现在学习的是可变集合集合的特点:确定性、互异性、无序性创建集合创建空集合,使用集合的内置函数set()来创建set1=set()print(type(set1))#<class'set'>为什么不能使用{}来创建,我们来看看代码:set2={}print(type(set2))#<class'dict'>从上面能看出这是字典的数据类型,并不是集合。上面的方法是创建空的字典使用set()函数将其他类型的数据转为集合。但是注意,其他类型的数据转为集合需要去重。来看看下面的示例:>>>st="hello">>>set(st){'o','e','l','h'}>>>tup=(1,2,3,1,2)>>>set(tup){1,2,3}>>>st="">>>set(st)set()对列表的元素去重>>>lst=[1,2,3,4,5,2,3,5]>>>nlst=list(set(lst))>>>nlst[1,2,3,4,5]对字符串的字符去重>>>st="hello">>>"".join(set(st))'oelh'集合的特征集合中的元素可以是不同的数据类型,但是不能是可变的数据类型(列表,字典)因为集合的三大特征(确定性、互异性、无序性)中的确定性决定的。确定性:指的是集合中的元素是不可变的数据类型,且不可变的数据内部也不能包含可变的数据类型。>>>set1={(1,2),"hello",1,3,88}>>>set1{(1,2),1,3,'hello',88}>>>set1={(1,[2,3]),"hello",1,3,88}Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>TypeError:unhashabletype:'list'互异性:指的是集合中的元素不能重复,即便在创建集合的时候里面有重复的元素,集合会自动删除重复的元素。因此集合可以用来剔除序列中重复的元素。但是可能会打乱序列中以前的数据顺序。>>>set1={1,2,3,4,5,1,2}>>>set1{1,2,3,4,5}>>>lst=[1,2,3,4,5,6,1,2,7]>>>nlst=list(set(lst))>>>nlst[1,2,3,4,5,6,7]无序性:指的是集合中的元素不记录元素的位置,因此不能使用索引和切片>>>set1[1]Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>TypeError:'set'objectdoesnotsupportindexing集合的操作1.set1.add(x)该函数用于在集合set1中添加元素x,如:>>>set1={'a','b','c'}>>>set1.add('d')>>>set1{'a','c','d','b'}2.set1.remove(x)该函数用于从集合set1中删除元素x,若x不存在于集合set1中,则会出现KeyError的错误。例如:>>>set1={1,2,3,4,5}>>>set1.remove(2)>>>set1{1,3,4,5}>>>set1.remove(6)Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>KeyError:63.set1.clear()该函数用于删除集合set1中的所有元素。例如:>>>set1={1,2,3,4}>>>set1.clear()>>>set1set()集合的运算交集两个集合共有的元素组成的集合,使用运算符”&”计算两个集合的交集>>>set1={1,2,3,4,5}>>>set2={3,4,5,6,7}>>>set1&set2{3,4,5}并集两个集合所有元素的集合,使用运算符”|”计算两个集合的并集>>>set1={1,2,3,4,5}>>>set2={3,4,5,6,7}>>>set1|set2{1,2,3,4,5,6,7}差集A-B表示属于集合A但不属于集合B的元素所组成的集合称为集合A和集合B的差集B-A表示属于集合B但不属于集合A的元素所组成的集合称为集合B和集合A的差集>>>set1={1,2,3,4,5}>>>set2={3,4,5,6,7}>>>set1-set2{1,2}>>>set2-set1{6,7}对称差集对于集合A和B,由所有属于集合A但不属于集合B,属于集合B但不属于集合A的元素所组成的集合称为集合A和集合B的对称差集,可以使用运算符”^”计算两个集合的对称差集>>>set1={1,2,3,4,5}>>>set2={3,4,5,6,7}>>>set1^set2{1,2,6,7}[限时练习]1.关于元组和列表的区别,下面说法正确的是()。
A.元组支持元素修改,列表不支持
B.元组用方括号定义,列表用圆括号定义
C.元组不可变,列表可变
D.元组只能包含数字类型元素
【答案】C
【解析】元组是不可变对象,列表是可变对象,这是两者的核心区别。A、B、D均错误。2.执行代码tup=(1,2,3);tup[1]=20的运行结果为()。A.输出(1,20,3)B.报错TypeErrorC.无任何变化D.报错SyntaxError【答案】B【解析】元组不可修改元素,尝试赋值会触发TypeError。3.下面哪种方式可以正确创建一个空集合()。A.set1={}B.set2=set()C.set3={""}D.set4=()【答案】B【解析】{}创建的是空字典,set()用于创建空集合。C是包含空字符串的集合,D是元组。4.集合set1={1,2,3}和set2={3,4,5}进行set1^set2运算的结果是()。A.{1,2,4,5}B.{3}C.{1,2,3,4,5}D.{1,2}【答案】A【解析】^表示对称差集,即仅存在于其中一个集合的元素,结果为{1,2,4,5}。5.执行代码print((1,2)>(1,2,0))的输出结果是()。A.TrueB.F
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 深基坑支护基坑周边建筑物保护措施制定方法选择原则
- 基于TLS会话管理实验课程设计
- 胃癌病人的饮食调理指南
- 弘扬传统文化传递时代精神
- 踏板操教学设计
- 冷库毕业设计方案展示
- 大班语言绘本教学策略与实施
- 图案设计原理与应用
- 急性胰腺炎治疗管理策略
- PET-CT检查操作技巧培训大纲
- 2024年广东省高考物理真题及答案解析
- 《C语言程序设计》课件-第4章 选择结构程序设计
- 自发性气胸住院病历
- 2025-2026学年重大版(新教材)小学信息科技四年级上册期末测试卷附答案
- 2025年全国统一大市场指数(UNMI)报告-中国人民大学
- 7.1文化的内涵与功能 课件 2025-2026学年统编版高中政治必修四哲学与文化
- 老年人桥式运动
- 2024-2025学年四川省乐山市市中区人教版四年级下册期末测试数学试卷(含答案)
- 运动场改造工程项目方案及施工组织评估
- 2025年广东省事业单位考试真题
- 腹股沟斜疝超声课件
评论
0/150
提交评论