版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
8序列操作序列简介所谓序列,指的是一块可存放多个值的连续内存空间,这些值按一定顺序排列,可通过每个值所在位置的编号(称为索引)访问它们。可以将序列看做是一家旅店,那么店中的每个房间就如同序列存储数据的一个个内存空间,每个房间所特有的房间号就相当于索引值。也就是说,通过房间号(索引)我们可以找到这家旅店(序列)中的每个房间(内存空间)。序列简介序列的特点:序列中每个组成部分称为“元素”。序列是程序设计中经常用到的数据存储方式,几乎每一种程序设计语言都提供了表格数据结构。Python提供的序列类型在所有程序设计语言中是最丰富、最灵活,也是功能最强大的。序列简介序列类型字典字符串元组列表序列索引序列中,每个元素都有属于自己的编号(索引)。从起始元素开始,索引值从0开始递增,如下图所示:元素1元素2元素3元素4元素…元素n0123…n-1索引(下标)序列索引此外Python还支持索引值是负数,此类索引是从右向左计数,即从最后一个元素开始计数,从索引值-1开始,如下图所示:
注意:在使用负值作为列序中各元素的索引值时,是从-1开始,而不是从0开始。元素1元素2元素3元素…元素n-1元素n-(n-1)-(n-2)-(n-3)…-2-1索引(下标)序列切片切片操作是访问序列中元素的另一种方法,它可以访问一定范围内的元素,通过切片操作,可以生成一个新的序列。使用索引可以获取单个元素,使用分片可以获取序列中指定范围内的元素。切片操作符为[:]/[::]。序列切片的语法格式如下:sname[start:stop:step]序列切片序列切片的语法格式如下:sname[start:stop:step]sname:表示序列的名称;start:表示切片的开始索引位置(包括该位置),如果不指定,默认为0;stop:表示切片的结束索引位置(不包括该位置),如果不指定,则默认为序列的长度;step:表示在切片过程中,隔几个存储位置(包含当前位置)取一次元素,也就是说,如果step的值大于1,则在进行切片去序列元素时,会“跳跃式”的取元素。如果省略设置step的值,则最后一个冒号就可以省略。序列切片注意:如果step>0,则表示从start索引对应的元素开始,每step个元素取出来一个,直到取到stop对应的元素结束(step默认为1),切片中冒号左边索引对应的元素晚于右边索引对应元素出现时,返回结果是[]。如果step<0,则表示从右到左反向提取元素,即从start索引对应的元素开始反向每step个元素取出来一个,直到取到stop+1对应的元素结束,此时切片中冒号左边索引对应的元素晚于右边索引对应元素出现,否则返回[]。序列相加Python中,支持两种类型相同的序列使用“+”运算符做相加操作,它会将两个序列进行连接,但不会去除重复的元素。这里所说的“类型相同”,指的是“+”运算符的两侧序列要么都是序列类型,要么都是元组类型,要么都是字符串。例如:
str="python"
print("编程语言:"+str)输出结果为:"编程语言:python"序列相乘Python中,使用数字n乘以一个序列会生成新的序列,其内容为原来序列被重复n次的结果。例如:
str="python"
print(str*3)输出结果为:"pythonpythonpython"成员资格Python中可以使用in关键字检查某元素是否为序列的成员。其语法格式为:valueinsequencevalue:表示要检查的元素sequence:表示指定的序列。和in关键字用法相同,但功能恰好相反的,还有notin关键字,它用法检查某个元素是否不包含在指定的序列中。内建函数序列迭代要想同时迭代多个序列,每次分别从一个序列中取一个元素,可以使用zip()函数。例如:m=[1,5,4,2,10]n=[101,78,37,15,62,99]forx,yinzip(m,n):print(x,y)运行结果为:11015784372151062zip(m,n)会生成一个可返回元组(x,y)的迭代器,其中x来自m,y来自n。一旦其中某个序列的元素迭代完,整个迭代宣告结束。因此迭代长度跟参数中最短序列长度一致。序列迭代
例如:
a=[1,2,3]
b=['u','v','w','x','y','z']
foriinzip(a,b):
print(i)运行结果为:(1,'u')(2,'v')(3,'w')序列迭代如果想要迭代长度跟参数中最长序列长度一致,那么可以使用itertools.zip_longest()函数来代替。例如:a=[1,2,3]b=['u','v','w','x','y','z']fromitertoolsimportzip_longestforiinzip_longest(a,b):
print(i)运行结果为:(1,'u')(2,'v')(3,'w')(None,'x')(None,'y')(None,'z')序列拷贝浅拷贝:将一个序列中的所有元素复制给另一个序列。复制的数会随着被复制数的嵌套序列的元素的改变而改变。格式:(数据).copy()深拷贝:将一个序列中的所有元素复制给另一个序列。复制的数不会随着被复制数的嵌套序列的元素的改变而改变。格式:copy.deepcopy(数据)序列拷贝例一:复制序列a=list(range(5))b=a.copy()print(a,b)运行结果为:[0,1,2,3,4][0,1,2,3,4]例二:更改被复制的序列a=list(range(5))b=a.copy()a[0]=5print(a,b)运行结果为:[5,1,2,3,4][0,1,2,3,4]序列拷贝例三:更改被复制的序列中的嵌套序列a=['a',list(range(5))]b=a.copy()print(a,b)a[1][0]=5print(a,b)运行结果为:['a',[0,1,2,3,4]]['a',[0,1,2,3,4]]['a',[5,1,2,3,4]]['a',[5,1,2,3,4]]例四:深拷贝importcopya=['a',list(range(5))]b
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年广西经贸职业技术学院马克思主义基本原理概论期末考试笔试真题汇编
- 2025年陇东学院马克思主义基本原理概论期末考试真题汇编
- 2025年天津中德应用技术大学马克思主义基本原理概论期末考试真题汇编
- 科技项目申报咨询方案
- 城市公园景观设计方案
- 企业内部培训师培养方案
- 应急逃生自救知识课件
- 应急管理局安全培训电脑课件
- 应急用血培训资料
- 2026年健康行业趋势咨询合同协议
- 2024年-Juniper防火墙配置
- 线虫病疫木及异常枯死松树处置 投标方案案(技术方案)
- 季度安全工作汇报
- (高清版)DZT 0350-2020 矿产资源规划图示图例
- HGT4134-2022 工业聚乙二醇PEG
- 小学教职工代表大会提案表
- 广西中医药大学赛恩斯新医药学院体育补考申请表
- 公司委托法人收款到个人账户范本
- 2023年上海市春考数学试卷(含答案)
- 2023版押品考试题库必考点含答案
- 北京市西城区2020-2021学年八年级上学期期末考试英语试题
评论
0/150
提交评论