在python中会出现[-1]、[:-1]、[::-1]、[n::-1]、[:,:,0]、[…,0]、[…,::-1],他们分别是什么意思呢,这里就来详尽的说一下:
下面的a = [1,2,3,4,5]
[-1]: 列表最后一项
[:-1]: 从第一项到最后一项
原型是[n : m],前闭后开,索引从零开始,第一个索引指定可以取到,即n可以取到,后一个索引不可取到,即m不可取到。
[::-1]: 代表从全列表倒序取
原型是[n : m : k],代表的是从那一段开始取,隔几个取一次。
其中,n代表的是取值开始的索引,因此该索引必将被取到,m代表的是取值结束的索引,和上面一样,该值不能被取到。
k代表的是间隔,间隔可正可负,正值代表正向顺序跳取,负值代表反向跳取。
需要注意的是,当k为正的时候起始索引应该小于结束索引;当k为负的时候起始索引应该大于结束索引,因为在倒序来看,首先是索引值大的被取到,然后才是索引值小的。
[n::-1]: 同上所述,从索引n开始倒序取值:
[:,:,0]: 因为有了逗号,所以这个方法就和前面的有所不同了。它是对多维数据的一种处理方式,代表了前两维全选,取其中的所有0号索引。
原型是[n:m, j:k, g:h],当然维度可以更多,在图片处理中,一般用到的就是三维的。看a数组的模样就可以看出来,nm管最外层列表的取值,从第n个元素到第m个元素,前闭后开;jk管nm取中的元素的列表中的元素的选取,也是前闭后开,gh管jk取中元素的列表中的元素的选取,任意一对都可以是个整数用来直接取某个索引,这和前两个很像。
其实就是嵌套列表的取值方法。
[…,0]: 代表了取最里边一层的所有第0号元素,…代表了对:,:,:,的省略。注意只能进行一次省略,不能是[… , …],全省略那不就是 a 吗。
同样可以再使用:来分割
放在后面视为其中的所有值,这和[2:]很像,一个是不写代表全部,一个是用…代表全部。
[…,::-1]: 是对最内层的列表进行逆序取值:
当然这个挑取的取法也可以放在其他位置,比如我们将他放在中间a[: , ::-1 , :],他就会把所有的第二层进行颠倒:
至此讲解完毕,请点赞。(尊重创作,禁止转发)