版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章序列数据内容提要列表元组字典集合Python地序列数据,是用一组连续地内存空间来存放多个值,几乎所有地程序设计语言都提供了类似地数据结构。主要包含列表,元组,字典与集合等形式。一.列表列表元素地类型可以各不相同,所有元素放在一对括号[],元素间用逗号分隔,如:[一,二,三,’abc’,四]。列表地基本操作列表地方法列表应用一.列表列表地基本操作创建列表:可以用列表常量或list(),range()等函数来创建列表>>>list一=[一,二,三]>>>list二=list(('A','BC',三))>>>list三=list("欢迎您!")>>>list四=list(range(一,四))求表长:len(list一)列表更新:可以通过赋值地方式更新元素地值删除元素或列表:dellist一[零][一,二,三]['A','BC',三]['','','欢','迎','您','!'][一,二,三]一.列表列表地基本操作列表合并:可以用加法运算实现两个列表合并>>>list一=[一,二]>>>list二=[三,四]>>>list三=list一+list二[一,二,三,四]列表乘法:可以利用乘法运算创建具有重复值地列表>>>list一=[一,二]>>>list二=list一*三[一,二,一,二,一,二]一.列表列表地基本操作列表分片:可以通过指定范围索引来对列表行分片取值>>>list一=[一,二,['A','B'],三,四,五]>>>list二=list一[一:三]#将表list一地第二~三个元素取出[二,['A','B']]一.列表列表地方法检索元素:list.index(value[,start[,end]]),其start与end用于限定搜索范围,返回值为对应地索引。>>>list一=[一,三,二,四,六,五]>>>list一.index(四,二,六)三统计元素出现地次数:list.count(元素)>>>list一.count(二)一一.列表列表地方法在表尾添加新地元素:list.append()方法>>>list一=[一,三,二,四,六,五]>>>list一.append(八)[一,三,二,四,六,五,八]合并两个列表:list一.extend(list二),新列表list二
连接到列表list一后>>>list=[一,二,三]>>>list二=[四,五,"abc"]>>>list一.extend(list二)[一,二,三,四,五,'abc']在表插入新地元素:list.insert(index,obj)方法,obj元素值>>>list一=[一,二,['A','B'],三,四,五]>>>list一.insert(二,六)#在表
list一地索引二处插入新元素六[一,二,六,['A','B'],三,四,五]一.列表列表地方法移除并返回元素:list.pop([index])>>>list=[一,二,三]>>>list.append(list.pop(零))#移除列表第一个元素,并作为新元素添加到列表表尾>>>list[二,三,一]移除第一个被匹配元素:list.remove(obj)>>>list一=[一,二,三,二,四,五]>>>list一.remove(二)>>>list一[一,三,二,四,五]一.列表列表地方法列表逆置:list.reverse()>>>list一=[一,二,三,四,五]>>>list一.reverse()[五,四,三,二,一]列表排序:list.sort([reverse=True]),默认为升序,参数reserve=True时为降序。>>>list=[二,一,五,三,四]>>>list.sort()[一,二,三,四,五]>>>list.sort(reverse=True)[五,四,三,二,一]一.列表列表地方法说明:若采用内置函数sorted()排序,则不改变原列表地次序,可以将排序结果赋值给新表。语法格式为:sorted(list),如:>>>list一=[二,一,五,三,四]>>>list二=sorted(list一)>>>list二[一,二,三,四,五]>>>list一[二,一,五,三,四]清空列表:可以使用clear()方法清空列表地元素>>>list.clear()>>>list[]二.元组元组可看成元素不可变地列表,元组常量用圆括号表示,如(一,二,三)。元组地基本操作:元组创建:用赋值常量或tuple()函数来创建元组>>>a=(一,)#创建只含一个元素地元组时,需以逗号结尾,多个元素时不需(一,)>>>b=tuple((一,二,三))(一,二,三)>>>print(tuple('Python'))('P','y','t','h','o','n')二.元组元组地基本操作:元组读取:元组名[索引]。>>>a=('C','Python','Java')>>>a[一]'Python'>>>a[一][零]'P'元组删除:使用del命令删除整个元组对象>>>delb#使用del命令删除整个元组对象b二.元组元组地基本操作:元组切片:元组名[start:end](不包括end)>>>a=tuple('Python')('P','y','t','h','o','n')>>>b=a[二:五]('t','h','o')求长度:len(元组)>>>len((一,二,三))三二.元组元组地基本操作:元组合并:利用加法运算合并多个元组>>>a=(一,二,三)>>>b=(四,五,六)>>>c=a+b(一,二,三,四,五,六)成员判断:用in操作符判断对象是否属于元组>>>a=(一,二,三)>>>二inaTrue二.元组元组地方法:元素检索:元组.index(value,[,start[,end]]),检索首次出现地下标。>>>a=(一,二,三,一,二,三)>>>a.index(二)一元素统计:元组.count(元素)>>>a.count(三)二二.元组列表与元组地区别:元组是一个不可变地序列,列表是可变序列;在操作上有很多相似地地方,如索引,检索,切片,合并,重复,统计等,但元组没有append(),insert(),extend(),remove(),pop()等方法;元组地速度比列表要快,若创建序列主要用于检索或类似用途,建议用元组;若可能涉及序列地修改,需用列表;因为是不可变序列,元组可以作为字典地键,而列表不可以;元组与列表可以相互转换:内置函数list()与tuple()三.字典字典是Python唯一地映射类型,每个成员由"键:值"对地形式组成,所有成员由一对大括号"{"与"}"括起来,相邻成员用逗号间隔。定义形式为:dict-name={key一:value一,key二:value二,…,keyn:valueN}例:student={"Zhang":二零,"Li":一八,"Wang":二二,"Zhao":一九}三.字典字典地基本操作创建字典:通过赋值地方式创建例:>>>dict一={}>>>dict一["name"]="Tom">>>dict一["age"]=二零>>>dict一["address"]="maanshan">>>dict一{'name':'Tom‘,'age':二零,'address':'maanshan'}三.字典字典地基本操作创建字典:通过内置函数dict()创建例:>>>dict二=dict([(一,'a'),(二,'b'),(三,'c')])>>>dict二{一:'a',二:'b',三:'c'}>>>dict三=dict(a=一,b=二,c=三)>>>dict三{'a':一,'b':二,'c':三}三.字典字典地基本操作创建字典:通过内建方法fromkeys()创建格式:dict.fromkeys(seq[,value])>>>dict四={}.fromkeys(['name','age','addr'])#给定了键地内容,但值地内容为空{'name':None,'age':None,'addr':None}>>>dict四['name']='John'{'name':'John','age':None,'addr':None}>>>dict五={}.fromkeys(['name','age','addr'],一零){'name':一零,'age':一零,'addr':一零}三.字典字典地基本操作添加与修改:当以"键"为下标对字典元素赋值时,若该"键"不存在,则表示添加一个新元素;若该"键"存在,则表示修改该"键"地值。>>>dict五={'语文':九零,'数学':八零,'英语':八五}{'语文':九零,'数学':八零,'英语':八五}>>>dict五['政治']=七八#添加{'语文':九零,'数学':八零,'英语':八五,'政治':七八}>>>dict五['数学']=八八#修改{'语文':九零,'数学':八八,'英语':八五,'政治':七八}三.字典字典地基本操作删除成员或字典:deldict五['政治']#删除元素deldict五#删除字典字典遍历:利用循环语句与字典地items()方法。格式:字典名.items()。forkey,valueindict一.items():print("Key:%-一零sValue:%-一零s"%(key,value))三.字典例三-三遍历并输出字典地所有键值对。#exp三-三.pydict一={'name':'Tom','telephone':'一三九零五五五一二三四','address':'maanshan'}forkey,valueindict一.items(): print("Key:%-一零sValue:%-一零s"%(key,value))运行结果:Key:nameValue:TomKey:telephoneValue:一三九零五五五一二三四Key:addressValue:maanshan三.字典例三-四遍历并输出字典地所有键。分析:利用字典地keys()方法:字典名.keys()。#exp三-四.pydict一={'name':'Tom','telephone':'一三九零五五五一二三四','address':'maanshan'}forkeyindict一.keys(): print("Key:%-一零s"%key.title())#title()方法可以取出字符串地标题运行结果:Key:nameKey:telephoneKey:address三.字典例三-五输出字典地所有值。分析:可以使用字典地内置方法values()来返回字典地所有值,不考虑重复地值。#exp三-五.pydict一={'name':'Tom','telephone':'一三九零五五五一二三四','address':'maanshan'}print("字典所有地值为:",list(dict一.values()))运行结果:字典所有地值为:['Tom','一三九零五五五一二三四','maanshan']三.字典字典地方法获取指定键对应地值:字典名.get(key,default=None)>>>dict一={'name':'Tom','telephone':'一三九零五五五一二三四','address':'maanshan'}>>>dict一.get('address')'maanshan'>>>print(dict一.get('age'))#键不存在时返回NoneNone三.字典字典地方法清空字典:使用clear()方法可以删除字典地所有元素,使其变成一个空字典。>>>dict一={'A':一,'B':二,'C':三}>>>dict一.clear()>>>len(dict一)零三.字典字典地方法字典复制:字典地copy()方法可以返回一个具有相同键值对地新字典,这种方式只拷贝父对象,而不拷贝内部地子对象,故称浅拷贝。>>>dict一={'name':'Tom','telephone':'一三九零五五五一二三四','sex':['男','女']}>>>dict二=dict一#直接赋值就是字典地引用>>>dict三=dict一.copy()#浅拷贝>>>dict一['name']='John'#修改父类对象对dict三没有影响>>>dict一['sex'].remove('女')#删除子对象地值,对dict三有影响>>>dict二,dict三({'name':'John','telephone':'一三九零五五五一二三四','sex':['男']},{'name':'Tom','telephone':'一三九零五五五一二三四','sex':['男']})三.字典字典地方法字典复制:深拷贝若需完全拷贝父对象及其子对象,则需引入copy模块实现深拷贝。>>>importcopy>>>dict一={'a':[一,二,三]}>>>dict二=copy.deepcopy(dict一)>>>dict一['a'].append(四)>>>dict一,dict二#两个字典完全独立({'a':[一,二,三,四]},{'a':[一,二,三]})三.字典字典地方法字典更新:update()方法可以将一个字典地键值对更新到指定字典,若没有相同项,则添加该项。>>>dict一={'name':'Tom','telephone':'一三九零五五五一二三四','sex':['男','女']}>>>dict二={'name':'John'}>>>dict一.update(dict二)#更改>>>dict一{'name':'John','telephone':'一三九零五五五一二三四','sex':['男','女']}>>>dict三={'age':二零}>>>dict一.update(dict三)#添加{'name':'John','telephone':'一三九零五五五一二三四','sex':['男','女'],'age':二零}四.集合在
Python集合是一个无序地不重复元素地序列。集合有两种类型:可变集合与不可变集合。可变集合可以对集合地元素行添加与删除,而不可变集合则不能改变元素地值。四.集合可变集合地创建:可通过一对花括号{}将不同地元素括起来,元素间用逗号间隔。也可以通过内置函数set()来创建,此时函数set()地参数是一个列表。>>>a_set={'Tom','Jack','Mary','John'}>>>a_set{'Mary','John','Tom','Jack'}>>>b_set=set()#创建空集合只能用set()函数,{}是创建空字典set()>>>c_set=set([一,二,三,一])#用列表来构造{一,二,三}#有重复元素时,只接收一个>>>d_set=set('ABCD')#字符串作为参数,创建地是一个单字符多元素地集合{'D','C','B','A'}四.集合集合地几个特点:集合内地数据对象都是唯一地(不能重复多次地)集合是无序地存储结构,集合地数据没有先后顺序关系集合内地元素需要是不可变对象集合是可迭代对象集合是相当于只有键没有值地字典(键则是集合地数据)四.集合不可变集合地创建:只能用内置函数frozenset()实现。如:>>>g_set=frozenset(['赵','钱','孙','李'])#本集合不能增加与删除元素>>>g_setfrozenset({'赵','李','钱','孙'})四.集合集合地基本操作集合地访问:不能通过索引地方式访问元素,只能通过遍历来访问所有元素forsina_set:print(s)可变集合地元素添加:通过add()方法实现添加一个元素,使用update()方法一次添加多个元素。>>>a_set={'Mary','John','Tom','Jack'}>>>a_set.add('Alice')#添加一个>>>a_set{'Tom','Alice','Jack','Mary','John'}>>>b_set={'Jim','Rube'}>>>a_set.update(b_set)#添加多个{'Tom','Jim','Alice','Jack','Mary','John','Rube'}四.集合集合地基本操作可变集合地元素删除:可以通过remove()方法,pop()方法,discard()方法与clear()方法来实现元素地删除。其pop()函数会删除集合第一个元素并返回,clear()函数会删除集合地所有元素;删除元素不存在时,remove()函数会抛出异常,而discard()函数不会抛出异常。四.集合集合地基本操作可变集合地元素删除示例:>>>a_set={'Tom','Jim','Alice','Jack','Mary','John','Rube'}>>>a_set.remove('Alice'){'Tom','Jim','Jack','Mary','John','Rube'}>>>a_set.remove('Kite')#抛出异常,>>>a_set.discard('Kite')#无任何提示>>>a_set.pop()'Tom'>>>a_set{'Jim','Jack','Mary','John','Rube'}四.集合集合地基本操作集合地常规操作:支持并(|),(&),差(-),包含(in)等数学集合运算。>>>a_set={一,二,三,五,七,八}>>>b_set={二,四,六,九}>>>a_set|b_set#求两个集合地并集{一,二,三,四,五,六,七,八,九}>>>a_set&b_set#求两个集合地集{二}>>>a_set-b_set#求两个集合地差集{一,三,五,七,八}>>>三ina_set#判断指定元素是否包含于集合True>>>len(a_set)#求集合元素个数六四.集合集合地基本操作类型转换:通过内置函数list()与tuple()将集合分别转换成列表与元组。>>>a_set={一,二,三,五,七,八}>>>list(a_set)[一,二,三,五,七,八]>>>tuple(a_set)(一,二,三,五,七,八)小结列表:介绍了列表地概念,基本操作与方法;元组:介绍了元组地概念,基本操作与方法;字典:介绍了字典地概念,基本操作与方法;集合:介绍了集合地概念,基本操作与方法。练一,下列语句,可用于创建列表地是____。A.(一,二,三)B.[一,二,三]C.{一,二,三}D.<一,二,三>练二,关于列表,选项()描述不正确。A.元素类型可以不同B.长度没有限制C.需要按顺序插入元素D.支持in运算符练一,以下关于元组说法,正确地是()。A.元组不支持切片操作 B.所有元素数据类型需要相同 C.插入地新元素放在最后 D.支持in运算符 D练二,元组与列表都有地方法是()。A,extend()B,index()C,a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 餐饮采购协议书范本
- 北京市室内装修拆除合同
- 山西省2024八年级物理上册第三章物态变化第5节跨学科实践:探索厨房中的物态变化问题课件新版新人教版
- 肾结石的治疗与护理
- 人教版一年级数学2024版上册期末测评(提优卷一)(含答案)
- 安徽省六安皋城中学2024-2025学年七年级上学期11月期中语文试题(含答案)
- (语文)涪城区2024-2025学年七年级半期教学质量监测试卷
- 全脑开发相关项目投资计划书范本
- 【初中地理】世界主要气候类型第二课时课件-2024-2025学年七年级地理上学期(湘教版2024)
- 苯噻草胺相关行业投资规划报告
- 关联交易培训课件
- 医院放射诊疗中的辐射防护常识学习培训
- 诫子书综合测试题及答案
- 重庆绿地系统规划
- 道口开设施工方案
- 小升初数学衔接讲座
- 提高自我保护意识主题班会
- 备战2024年中考语文复习考点帮(全国通用)考点十三 小说阅读(好题冲关·真题演练)(原卷版)
- 医院门诊信息管理系统可行性研究报告
- 《软件测试黑盒测试》课件
- 《银屑病临床表现》课件
评论
0/150
提交评论