使用「 [ ] 」可以取得某個字元 ,因為每個字元在字串中都有各自的「順序 offset」,從左邊數來第一個順序為 0,接下來是 1,如果指定 -1 則會選擇最右邊的字元,-2 則是右邊數來的第二個,依此類推。
a = 'hello world'
print(a[0]) # h ( 第一個字元 )
print(a[3]) # l ( 第四個字元 )
print(a[-1]) # d ( 最後一個字元 )
如果要取得某一串文字,可以使用「slice」的方式,定義 slice 的方式為一組方括號、一個 start ( 開始順序 )、一個 end ( 結尾順序 ) 和一個中間的 step ( 間隔 ),常見的規則如下:
[ : ]
取出全部字元,從開始到結束
[ start: ]
取出從 start 的位置一直到結束的字元
[ :end ]
取出從開始一直到 end 的「前一個位置」字元
[ start:end ]
取出從 start 位置到 end 的「前一個位置」字元
[ start:end:step ]
取出從 start 位置到 end 的「前一個位置」字元,並跳過 step 個字元
a = '0123456789abcdef'
print(a[:]) # 0123456789abcdef ( 取出全部字元 )
print(a[5:]) # 56789abcdef ( 從 5 開始到結束 )
print(a[:5]) # 01234 ( 從 0 開始到第 4 個 ( 5-1 ) )
print(a[5:10]) # 56789 ( 從 5 開始到第 9 個 ( 10-1 ) )
print(a[5:-3]) # 56789abc ( 從 5 開始到倒數第 4 個 ( -3-1 ) )
print(a[5:10:2]) # 579 ( 從 5 開始到第 9 個,中間略過 2 個 )
split() 函式可以將一個字串,根據指定的「分隔符號」,拆分成「串列」 ( 串列就是許多值組成的序列,將許多值包覆在方括號裡,並使用逗號分隔 )。
a = 'hello world, I am oxxo, how are you?'
b = a.split(',') # 以逗號「,」進行拆分
c = a.split(' ') # 以空白字元「 」進行拆分
d = a.split() # 如果不指定分隔符號,自動以空白字元進行拆分
print(b) # ['hello world', ' I am oxxo', ' how are you?']
print(c) # ['hello', 'world,', 'I', 'am', 'oxxo,', 'how', 'are', 'you?']
print(d) # ['hello', 'world,', 'I', 'am', 'oxxo,', 'how', 'are', 'you?']
replace() 函式可以進行簡單的字串替換,replace() 函式有三個參數「舊的字串,新的字串,替換的數量」,如果沒有指定數量,就會將內容所有指定的字串替換成新的字串。
如果要進行更複雜規則的取代,就必須要使用「正規表達式」。
a = 'hello world, lol'
b = a.replace('l','XXX')
c = a.replace('l','XXX',2)
print(b) # heXXXXXXo worXXXd, XXXoXXX ( 所有的 l 都被換成 XXX )
print(c) # heXXXXXXo world, lol ( 前兩個 l 被換成 XXX )