1.大小寫轉換
方法/函數 | 解釋 |
---|---|
S.title( ) | 每個單詞首字母大寫 |
S.lower( ) | 全小寫 |
S.upper( ) | 全大寫 |
注意以上方法不會改變字元串S本身,而是産生新的字元串。
name = 'john johnson'
print(name.title())
print(name)
John Johnson
john johnson
2.删除左右空格
方法/函數 | 解釋 |
---|---|
S.strip(), S.rstrip(), S.lstrip() | 删除前後/右/左空格 |
name = ' Python'
name.lstrip()
'Python'
3.替換、合并與拆分
方法/函數 | 解釋 |
---|---|
S.replace(old,new) | 在字元串S中用new子串替換old子串 |
S.join(X) | 用字元串S将序列X合并成字元串 |
S.split(str,num) | 以str為分割符,将字元串S分割num次成清單, |
s = 'This is a test.'
t = s.replace('is','eez')
print(t)
print(s)
Theez eez a test.
This is a test.
str = '-'
seq = ['a','b','c']
print(str.join(seq))
a-b-c
join方法還可以對字元串操作。這時相當于将字元串的每個字元拆出來組成清單,再将清單聚合成了字元串。
s = 'hello good boy wii'
print(':'.join(s))
h:e:l:l:o: :g:o:o:d: :b:o:y: :w:i:i
使用split方法分割字元串時,str預設為所有空字元,包括空格、換行符、制表符等。num預設為-1,即分割所有。
str = 'abcd \nefg \nhij'
print(str.split())
print(str.split(' ',1)
['abcd','efg','hij']
['abcd','\nefg \nhij']
split方法實際上可以支援正規表達式,功能很強大。
4.查找與統計
方法/函數 | 解釋 |
---|---|
S.find(str,start,end) | 在字元串S中從索引start到end查找子串str,傳回開始的索引值 |
S.count(str,start,end) | 在字元串S中從索引start到end統計子串str的出現次數 |
除了用in運算符來判斷某個子串是否存在,還可以用find方法獲得子串第一次出現的位置,如果不存在,傳回-1。
s = 'This is a test.'
print(s.find('is'))
2
如果需要找出後續子串’is’出現的位置,則需要指定起點和終點。
s = 'This is a test.'
k = s.find('is')
print(k)
k = s.find('is',k+1) #不指定終點
print(k)
k = s.find('is',k+1,len(s)-1)
print(k)
2
5
-1
注意起點和終點的定義與切片一緻。除了find方法,還有rfind方法從右邊開始搜尋,其餘細節與find相同。
count方法的用法與find類似,也可以指定起點和終點。
s = 'This is a test'
print(s.count('is'))
2