在 Python 中,我們常常要擷取字串中的某些部份,我們可以用 Slicing (分割) 的方式,其方法與串列中以索引來取值的方式很像。
取得字串中的單一字元
如果你想取得字串中索引值所標示的字元,可以利用下述的語法進行處理:
字串[索引值]
要特別注意的是索引值是由 0 計算,所以設定的索引值要 + 1 取值,例如:
string = "python" print(string[3]) # 輸出為 h
這裡的 string[3] 就是取字串中由 0 開始算再 3 個字元,也就是第 4 個字元「h」。
取得字串中的子字串
如果你想取出字串的一部份成為子字串,可以利用下述的語法處理:
字串[起始值:結束值:間隔值]
索引值是由計算是由 0 開始,所以一般起始值要 +1 取值,例如起始值 3 代表要由第 4 個字元開始;結束值要取值時自己不能算,所以在 + 1 之後再 -1。例如結束值 5,就是代表要取到第 6 個值,但第 6 個值不能算,所以取到第 5 個值;間隔值可以不用填,預設值是 1。例如:
string = "python" print(string[3:5]) # 輸出為 ho
若想間隔取值,就要設間隔值,如:
string = "python" print(string[0:5:2]) # 輸出為 pto
起始值如果不填就代表由最前方算起,結束值如果不填就代表算到最後。例如:
string = "python" print(string[:3]) # 輸出為 pyt print(string[3:]) # 輸出為 hon print(string[:]) # 輸出為 python
由字串後方倒取字元或子字串
若想由字串後取得字元,為索引值加上負號(-)即可,例如想取得最後 1 個字元或最後第 5 個字元:
string = "python" print(string[-1]) # 輸出為 n print(string[-5]) # 輸出為 y
若想要由字串後取得子字串,起始值終止值都要是負數,而起始值要比終止值小,要記著結束值本身不能算喔!例如:
string = "python" print(string[-5:-1]) # 輸出為 ytho
字串中取反轉子字串
如果想要取得反轉的子字串,只要將間隔值設為「-1」,例如:
string = "python" print(string[::-1]) # 輸出為 nohtyp
如果有設起始值及結束值時,正數由左開始算,負數是由右開始算,要記著結束值本身不能算喔!例如:
string="012345"
print(string[5:3:-1])
# 從索引第5個字元開始,取到第2個字元(3-1)為止,所以是 54
print(string[5:-5:-1])
# 從索引第5個字元開始,取到倒數第4個字元(-5+1)為止,所以是 5432
print(string[4:-5:-1])
# 從索引第4個字元開始,取到倒數第4個字元(-5+1)為止,所以是 432
print(string[4:-7:-2])
#從索引第4個字元開始,取到倒數第6個字元(-7+1) 為止,所以是 420
參考資料