1. 程式人生 > 其它 >5.2 Python擷取字串(字串切片)方法詳解

5.2 Python擷取字串(字串切片)方法詳解

技術標籤:第 5 章 Python字串常用方法詳解python基礎超詳細

從本質上講,字串是由多個字元構成的,字元之間是有順序的,這個順序號就稱為索引(index)。Python 允許通過索引來操作字串中的單個或者多個字元,比如獲取指定索引處的字元,返回指定字元的索引值等。

獲取單個字元

知道字串名字以後,在方括號[ ]中使用索引即可訪問對應的字元,具體的語法格式為:

strname[index]

strname 表示字串名字,index 表示索引值。

Python 允許從字串的兩端使用索引:

  • 當以字串的左端(字串的開頭)為起點時,索引是從 0 開始計數的;字串的第一個字元的索引為 0,第二個字元的索引為 1,第三個字串的索引為 2 ……
  • 當以字串的右端(字串的末尾)為起點時,索引是從 -1 開始計數的;字串的倒數第一個字元的索引為 -1,倒數第二個字元的索引為 -2,倒數第三個字元的索引為 -3 ……

請看下面的例項演示:

url = 'http://www.baidu.com/python/'
#獲取索引為10的字元
print(url[10])
#獲取索引為 -6 的字元
print(url[-6])

執行結果:

i
y

獲取多個字元(字串截去/字串切片)

使用[ ]除了可以獲取單個字元外,還可以指定一個範圍來獲取多個字元,也就是一個子串或者片段,具體格式為:

strname[start : end : step]

對各個部分的說明:

  • strname:要擷取的字串;
  • start:表示要擷取的第一個字元所在的索引(擷取時包含該字元)。如果不指定,預設為 0,也就是從字串的開頭擷取;
  • end:表示要擷取的最後一個字元所在的索引(擷取時不包含該字元)。如果不指定,預設為字串的長度;
  • step:指的是從 start 索引處的字元開始,每 step 個距離獲取一個字元,直至 end 索引出的字元。step 預設值為 1,當省略該值時,最後一個冒號也可以省略。

【例項1】基本用法:

url = 'http://www.baidu.com/java/'
#獲取索引從7處22(不包含22)的子串
print(url[7: 22]) 
# 輸出 zy#獲取索引從7處到-6的子串
print(url[7: -6]) # 輸出 zyit.org is very #獲取索引從-7到6的子串 print(url[-21: -6]) #從索引3開始,每隔4個字元取出一個字元,直到索引22為止 print(url[3: 22: 4])

執行結果:

www.baidu.com
www.baidu.com
www.baidu.com
pcaen

【例項2】高階用法,start、end、step 三個引數都可以省略:

url = 'http://www.baidu.com/java/'
#獲取從索引7開始,直到末尾的子串
print(url[7: ])
#獲取從索引-21開始,直到末尾的子串
print(url[-21: ])
#從開頭擷取字串,直到索引22為止
print(url[: 22])
#每隔3個字元取出一個字元
print(url[:: 3])

執行結果:

www.baidu.com/java/
www.baidu.com/java/
http://www.baidu.com
hp/bne.ta/