理解方式:

  [i:j:s]

  也就是,两个冒号分割了三个数i,j,s

  i是起始位置

  j是终止位置(最终序列里边不包含终止位置)

  s就是step,步长

  

  重点:

    当写两个冒号的时候, [::-1],相当于省略了i,j,也就是取所有的i和j,但是步长为-1,也就是倒序

    同理,[::-2]就是步长为-2,也就是倒序且步长为2

 

   而只写一个冒号[:-1],相当于只有i和j,且j=-1,也就是从头开始一直到最后一个(不包含最后一个)


 

 

1、案例解释
a='python'
b=a[::-1]
print(b) #nohtyp
c=a[::-2]
print(c) #nhy
#从后往前数的话,最后一个位置为-1
d=a[:-1]  #从位置0到位置-1之前的数
print(d)  #pytho
e=a[:-2]  #从位置0到位置-2之前的数
print(e)  #pyth
2、用法说明
b = a[i:j]   表示复制a[i]到a[j-1],以生成新的list对象

a = [0,1,2,3,4,5,6,7,8,9]
b = a[1:3]   # [1,2]
当i缺省时,默认为0,即 a[:3]相当于 a[0:3]
当j缺省时,默认为len(alist), 即a[1:]相当于a[1:10]
当i,j都缺省时,a[:]就相当于完整复制一份a

b = a[i:j:s]表示:i,j与上面的一样,但s表示步进,缺省为1.
所以a[i:j:1]相当于a[i:j]
当s<0时,i缺省时,默认为-1. j缺省时,默认为-len(a)-1
所以a[::-1]相当于 a[-1:-len(a)-1:-1],也就是从最后一个元素到第一个元素复制一遍,即倒序。


[::-1] 顺序相反操作
[-1] 读取倒数第一个元素
[3::-1] 从下标为3(从0开始)的元素开始翻转读取
同样适用于字符串
eg:

a=[1,2,3,4,5]
b=a[::-1]
------------------------------
[5, 4, 3, 2, 1]

 

b=a[-1]
------------------------------
5

 

b=a[3::-1]
------------------------------
[4, 3, 2, 1]
————————————————