python入门语法教程:序列详解(包括索引和切片)

2022-07-2719:51:58编程语言入门到精通Comments768 views字数 1761阅读模式

序列是保存多个数据项的对象,它的存储方式是一个接一个的排列。同时每个元素都会拥有一个值,这个值代表他们存储在序列中的位置,一般我们称它为索引。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26143.html

打个比方来说,一个班级有若干个学生,每个学生都有一个学号,每个学号对应一个名字,而这个学号就是每个学生的索引值。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26143.html

Python中,序列有字符串、列表、元组、字典、集合,对于这些序列,其中集合和字典是不能够使用索引、切片、相加等操作的。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26143.html

本章我们将介绍一下索引和切片。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26143.html

1.索引文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26143.html

索引作为一种访问方式,我们在访问列表元素的时候最常用到索引。上面我们也提到过,索引值是每个元素对应的位置,那么索引是有一定值的,索引的值是从0开始,因此每个元素对应的位置是他的索引值+1。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26143.html

我们定义一个列表文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26143.html

1
my_list = [1,2,3,4,5]

我们通过图来看一下文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26143.html

  元素值12345
正索引值01234
负索引值-5-4-3-2-1

对于正索引值也就是说,第一个元素对应的索引值为0,第二个元素的索引值为1,依此类推,最后一个元素的索引值对应的就是列表内总元素的数量减1。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26143.html

而对于负索引值,第一个元素对应的索引值是0,而-1代表的是元素的最后一个,然后依次递减到元素的第一位,如表所示。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26143.html

通过实例来看一下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26143.html

1
2
3
4
my_list = [1,2,3,4,5]
print('列表第一个元素',my_list[0])#访问第一个元素,索引值为0
print('列表第二个元素',my_list[1],my_list[-4])#访问第二个元素,正索引值为1,负索引值为-4
print('列表最后一个元素',my_list[4],my_list[-1])#访问最后一个元素,正索引值为4,负索引值为-1

运行结果为:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26143.html

1
2
3
列表第一个元素 1
列表第二个元素 2 2
列表最后一个元素 5 5

2.切片文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26143.html

 文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26143.html

序列的切片就是将序列切成小的子序列,切片运算符有两种形式。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26143.html

1) [start:end]:start为起始索引位置(包含start),end为结束索引位置(不包含end)。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26143.html

2) [start:end:step]:同上一样,不同的是step,step为步长,在前面讲range()函数的时候提到过这个,它的用法和前面讲的一样,在这里指切片之间的间隔,但是步长对应的是每两个子序列间的间隔的值减1,不含step时默认为1(此时无间隔),step也可以为负值。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26143.html

切片在列表操作的时候经常会使用到,使用切片还可以进行列表或字符串的逆序等操作。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26143.html

我们先通过例子来看一下切片的效果:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26143.html

1
2
3
4
5
my_list = [1,2,3,4,5,6,7,8,9,]
print('取列表的前5项',my_list[0:4])#当0省略的时候默认为0,即为my_list[:4]
print('取列表的第2-4项',my_list[1:4])#注意4是列表的第五项,但是在这里是不包含4的,所以没有第五项
print('取列表所有项,步长为2',my_list[::2])#步长为2,也就是走2步,所以间隔为1
print('取列表的逆序',my_list[::-1])#当步长为-1的时候,也就是反向走了一遍,即为逆序

输出结果:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26143.html

1
2
3
4
取列表的前5项 [1234]
取列表的第2-4项 [234]
取列表所有项,步长为2 [13579]
取列表的逆序 [987654321]

3.总结文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26143.html

 文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26143.html

索引和切片在我们学习Python的过程中使用的比较频繁,无论我们是在访问序列中某一项的时候还是我们在遍历序列的时候,通过索引值的方式都可以帮助精准快速的完成操作。切片操作用起来更是方便,很多算法问题我们通过切片解决起来都十分方便,就拿逆序问题来说一下切片,切片能使用字符串、元组和列表,再通过下面一个例子来强化一下对于切片逆序的学习。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26143.html

1
2
3
4
5
6
7
8
9
a= '123456'
= (1,2,3,4,5,6)
= [1,2,3,4,5,6]
= a[::-1]
= b[::-1]
= c[::-1]
print(a)
print(b)
print(c)

输出结果为:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26143.html

1
2
3
654321
(654321)
[654321]

通过切片的方式解决一些特殊问题会显得特别方便,本节我们就学习到这里。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26143.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/ymba/26143.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定