python的索引和切片

一、索引和切片介紹

字符串可以定義為字符的有序集合,我們可以通過其位置獲得他們的元素。在python中,字符串中的字符是通過索引提取的。

  • python偏移量是從0開始的,這樣就會比字符串的長度len()小1。
  • 大家比較熟悉字符串的正偏移,python中還可以使用負偏移,可以看著是從結(jié)束處反向計數(shù)。
  • 關(guān)于偏移和分片的網(wǎng)格四意圖如圖,便于理解:
image.png

個人覺得這個圖解比較好,大部分人的圖解都是直接把偏移量0直接指向了第一個元素。


二、代碼舉例講解

舉例1:索引(S[i])獲取特定偏移的元素

S = 'abcdefg'
print(S[0],S[-1])
#('a', 'g')

  • 第一個元素的偏移量是0
  • 負偏移索引意味著從最后或者右邊反向進行計數(shù)
  • S[0]獲取了第一個元素
  • S[-1]獲取了倒數(shù)第一個元素,效果等同于S[len(S)-1]

舉例2:分片(S[i:j])提取對應(yīng)的步伐作為一個序列

S = 'abcdefg'
print(S[1:3])
#'bc'
print(S[1:])
#'bcdefg'
print(S[:-1])
#'abcdef'

  • 上邊界并不包含在內(nèi)
  • 分片的邊界默認為0和序列的長度,如果沒有特別給出的話
  • S[1:3]獲取了從偏移為1的元素,到但是不包含偏移為3的元素
  • S[1:]或者了從偏移1直到末尾直接的元素
  • S[:3]獲取了從偏移0直到但是不包括3之間的元素=S[0:3]
  • S[:-1]獲取了從偏移量0直到但是不包含最后一個元素之間的
  • S[:]獲取了所有的元素,可以實現(xiàn)頂層S的拷貝

三、擴展分片:第三個限制值S[I:J:K]

直接代碼舉例進行說明

print(S[1:5:2])
# 'bd'
print(S[::2])
# 'aceg'
print(S[::-1])
# 'gfedcba'
print(S[5:1:-1])
# 'fedc'

  • S[I:J:K]代表“偏移從X到J-1,每隔K元素索引一次”
  • 第三個限制K,默認為1
  • S[1:5:2]取偏移1到4之間的元素,間隔1個元素的元素,也就是偏移1、3之處的元素
  • S[::2]從序列頭取到尾,每隔一個元素的元素
  • 也可以用負數(shù)作為步進,步進-1代表從右向左進行。
  • S[::-1]實際效果就是將序列進行反轉(zhuǎn)(這是一個有用的技巧)
  • S[5:1:-1]反轉(zhuǎn)的順序獲取2到5的元素(偏移5、4、3、2的元素)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容