python 中的 [:-1] 和 [::-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
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]

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],也就是從最後一個元素到第一個元素複製一遍,即倒序。

3. 實際應用場景:

對於一個二進制數011101 * 101
移位相乘的思想是:

  011101 * 1 * (2^0)  
+ 011101 * 0 * (2^1) 
+ 011101 * 1 * (2^2)

每次的加法需要從最低位向最高位取,所以使用[::-1]就可以簡單的從最低位開始取

for i in str(101)[::-1]:	#從最低位取

參考資料:資料

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章