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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM