全面解讀python中對(duì)字符串(str)的操作

灰色框里面的方法就是所有字符串處理的方法

字符串能使用的所有方法.png

1、strip: 去除首尾的空白符

s = '\n   hello word \n\t\r'
# 左右都去除
all = s.strip()
all = 'hello word'
# 左去除
left = s.lstrip()
left = 'hello word \n\t\r'
# 右去除
right = s.rstrip()
right = '\n hello word'
python對(duì)字符串s的處理是一個(gè)set,而不是一個(gè)固定順序的字符串。也就是說(shuō),是把s拆開(kāi)成由單個(gè)字母組成的set來(lái)看的,如果被strip()的字符串在左右邊包含任意一個(gè)該set中的字符,都會(huì)被strip()掉。
s = 'hello word'
s.strip('hello')
s.strip('helo')
s.strip('hloe')
...(這是set無(wú)序,不重復(fù)性質(zhì))
得到的結(jié)果都一樣--->' word'

2、字符串相加:就是使用‘+’由于很簡(jiǎn)單就不多說(shuō)了。

3、字符串的查詢

使用index(),find()查詢,找到了返回下標(biāo)。find()找不到不會(huì)報(bào)錯(cuò),index()找不到會(huì)報(bào)錯(cuò)。

s = 'prince with rose'
>>> s.index('p')  
>>> s.find('p')
>>> 0  # 返回的是該元素在字符串中的下標(biāo)

>>>s.index('d')
>>>ValueError: substring not find

>>> s.find('d')
>>> -1  # 如果找不到返回'-1'

使用in / not in, 返回布爾值

# 存在時(shí)的情況
>>> 'prince' in s
>>> True
# 不存在時(shí)候的情況
>>> 'hello' in s
>>> False

4、字符串的比較

str.cmp():比較兩個(gè)對(duì)象,并根據(jù)結(jié)果返回一個(gè)整數(shù)。X< Y,返回值是負(fù)數(shù) ,X>Y 返回的值為正數(shù),X=Y,返回值為0。

python3已經(jīng)沒(méi)有該方法,官方文檔是這么寫(xiě)的:

The cmp() function should be treated as gone, and the cmp() special method is no longer supported. Use lt() for sorting, eq() with hash(), and other rich comparisons as needed. (If you really need the cmp() functionality, you could use the expression (a > b) - (a < b) as the equivalent for cmp(a, b).)
大意就是不再支持cmp()函數(shù),如果你真的需要cmp()函數(shù),你可以用表達(dá)式(a > b) - (a < b)代替cmp(a,b)

# 數(shù)字大小很好理解
>>> a= '100'
>>> b= '80'
>>> cmp(a,b)
>>>1  
# 字符串的大小,可以理解為26個(gè)字母越排在后面的越大
>>> a= 'abc'
>>> b= 'efg'
>>> cmp(a,b)
>>> -1
#  相等的情況
>>> cmp(a,a)
>>> 0

5、字符串的長(zhǎng)度

使用len()這個(gè)方法,s.len()就可以獲取到字符串的長(zhǎng)度,返回的是一個(gè)整數(shù)。

6、字符串的大小寫(xiě)(upper,lower)

up和low的比較級(jí)單詞

s = 'Hey gUys '
# 變大
u = s.upper()
u = 'HEY GUYS'
# 變小
l = s.lower()
l = 'hey guys'

s.swapcase() # 大小寫(xiě)互換 
>>> 'hEY GuYS'

s.capitalize() # 首字母大寫(xiě) 
>>> 'Hey guys'
# 帶有"_"的可以把連接的兩個(gè)單詞的首字母
s = 'hey_guys'
>>> s.capitalize()
>>> 'Hey_Guys'

7、字符串的測(cè)試、判斷函數(shù),這些函數(shù)返回的都是bool值

S.startswith() # 是否以開(kāi)頭 
S.endswith()   # 以結(jié)尾 
S.isalnum()    # 是否全是字母和數(shù)字,并至少有一個(gè)字符 
S.isalpha()    # 是否全是字母,并至少有一個(gè)字符 
S.isdigit()    # 是否全是數(shù)字,并至少有一個(gè)字符 
S.isspace()    # 是否全是空白字符,并至少有一個(gè)字符 
S.islower()    # S中的字母是否全是小寫(xiě) 
S.isupper()    # S中的字母是否便是大寫(xiě) 
S.istitle()    # S是否是首字母大寫(xiě)的

8、字符串切片

str = '0123456789′
str[0:3]    #截取第一位到第三位的字符
str[:]      #截取字符串的全部字符
str[6:]     #截取第七個(gè)字符到結(jié)尾
str[:-3]    #截取從頭開(kāi)始到倒數(shù)第三個(gè)字符之前
str[2]      #截取第三個(gè)字符
str[-1]     #截取倒數(shù)第一個(gè)字符
str[::-1]   #創(chuàng)造一個(gè)與原字符串順序相反的字符串
str[-3:-1]  #截取倒數(shù)第三位與倒數(shù)第一位之前的字符
str[-3:]    #截取倒數(shù)第三位到結(jié)尾
str[:-5:-3] #逆序截取,截取倒數(shù)第五位數(shù)與倒數(shù)第三位數(shù)之間

9、字符串替換

python 字符串替換可以用2種方法實(shí)現(xiàn):
1是用字符串本身的方法。
2用正則來(lái)替換字符串

#1.用字符串本身的replace方法
a = 'hello world'
a.replace('world','python')
>>> a 
>>> hello python

2.用正則表達(dá)式來(lái)完成替換:
import re
 b = str.sub(r'word$','python',a)  # 至少傳三個(gè)參數(shù):r'', 替換內(nèi)容,被替換的字符串
>>> b
>>> hello python
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容