Python系列:切片和索引的使用
【摘要】 python系列第三课
今天就带着大家开始我们——Python学习的第三课。这里我们单独用一节来讲述元素的访问问题,可见它的重要性。
Python中的序列有元组、列表和字符串,因此咋们都可以通过索引和切片的方式,来获取其中的元素。
1. 索引
Python中的索引,对于正向索引,都是从0开始的。但是对于反向索引,确实从-1开始的。如图所示,我给大家做了一个标注。
下面我们定义了一个元组,我们既可以使用正向索引获取元组的第一个元素和最后一个元素。同样,我们也可以使用反向索引获取其中的第一个元素和最后一个元素。
>>> x = (1, 2, "黄", True, 1.2)
>>> x[0]
1
>>> x[4]
1.2
>>> x[-1]
1.2
>>> x[-5]
1
如果说,索引超出了元素长度的话,则会报错IndexError: tuple index out of range,这是很多朋友学习Python时,会遇到的一个问题。
>>> x = (1, 2, "黄", True, 1.2)
>>> x[7]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: tuple index out of range
2. 切片
关于切片的使用,要记住一个语法:[start:stop:step],其中start代表起始索引;stop代表终止索引;step代表步长;
- 注意1:索引是左臂右开区间,比如说x[0:9:1],只能是取到索引等于0处的元素到索引等于8处的元素,而取不到索引等于9的这个元素;因为索引是从0开始的。
- 注意2:当不写start代表从起始处索引取数,当不写stop代表一直取数到最后位置,当不写step步长,代表使用默认步长1;
- 注意3:start、stop、step都可以是负数,具体什么含义,最好在下面的例子中好好体会;
下面我用一张图,带你辅助理解切片。
理解了切片的含义后,我们来做一些练习题吧。
a = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
print(a[:3]) # 0 1 2
print(a[3:6]) # 3 4 5
print(a[6:]) # 6 7 8 9
print(a[::]) # 0 1 2 3 4 5 6 7 8 9
print(a[:]) # 0 1 2 3 4 5 6 7 8 9
print(a[::3]) # 0 3 6 9
print(a[1::3]) # 1 4 7
print(a[2::3]) # 2 5 8
上面的案例,稍许有些简单,我们来看一点难得,你觉得好理解吗?
a = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
# 当start、stop、step为负数的时候,理解起来就稍微难一点;
print(a[::-1]) # 9 8 7 6 5 4 3 2 1 0
print(a[:-4:-1]) # 9 8 7
print(a[-4:-7:-1]) # 6 5 4
print(a[-7::-1]) # 3 2 1 0
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)