Fork me on GitHub

python中[:-1]与[::-1]的区别

理解方式:

  [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],也就是从最后一个元素到第一个元素复制一遍,即倒序。

参考:http://www.cnblogs.com/mxh1099/p/5804064.html
--------------------- 
作者:明宇李 
来源:CSDN 
原文:https://blog.csdn.net/mingyuli/article/details/81604795 
版权声明:本文为博主原创文章,转载请附上博文链接!
————————————————
版权声明:本文为CSDN博主「Jesse-Xue」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_38809962/article/details/89531520


[::-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]
————————————————
版权声明:本文为CSDN博主「HARDBIRD123」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/HARDBIRD123/article/details/82261651

 

posted @ 2021-04-15 10:39  stardsd  阅读(2299)  评论(0编辑  收藏  举报