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 2print(a[3:6]) # 3 4 5print(a[6:]) # 6 7 8 9print(a[::]) # 0 1 2 3 4 5 6 7 8 9print(a[:]) # 0 1 2 3 4 5 6 7 8 9print(a[::3]) # 0 3 6 9print(a[1::3]) # 1 4 7print(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 0print(a[:-4:-1]) # 9 8 7 print(a[-4:-7:-1]) # 6 5 4print(a[-7::-1]) # 3 2 1 0
总结 以上是内存溢出为你收集整理的python基础(四):切片和索引全部内容,希望文章能够帮你解决python基础(四):切片和索引所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)