天天看點

Python學習筆記——字元串的常用方法與函數

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