python中處理字串的一些常用方法

2021-08-30 23:02:48 字數 2881 閱讀 5424

python-string-function

字串中字元大小寫的變換:

* s.lower() #小寫

* s.upper() #大寫

* s.swapcase() #大小寫互換

* s.capitalize() #首字母大寫

* string.capwords(s)

#這是模組中的方法。它把s用split()函式分開,然後用capitalize()把首字母變成大寫,最後用join()合併到一起

* s.title() #只有首字母大寫,其餘為小寫,模組中沒有這個方法

字串在輸出時的對齊:

* s.ljust(width,[fillchar])

#輸出width個字元,s左對齊,不足部分用fillchar填充,預設的為空格。

* s.rjust(width,[fillchar]) #右對齊

* s.center(width, [fillchar]) #中間對齊

* s.zfill(width) #把s變成width長,並在右對齊,不足部分用0補足

字串中的搜尋和替換:

* s.find(substr, [start, [end]])

#返回s中出現substr的第乙個字母的標號,如果s中沒有substr則返回-1。start和end作用就相當於在s[start:end]中搜尋

* s.index(substr, [start, [end]])

#與find()相同,只是在s中沒有substr時,會返回乙個執行時錯誤

* s.rfind(substr, [start, [end]])

#返回s中最後出現的substr的第乙個字母的標號,如果s中沒有substr則返回-1,也就是說從右邊算起的第一次出現的substr的首字母標號

* s.rindex(substr, [start, [end]])

* s.count(substr, [start, [end]]) #計算substr在s中出現的次數

* s.replace(oldstr, newstr, [count])

#把s中的oldstar替換為newstr,count為替換次數。這是替換的通用形式,還有一些函式進行特殊字元的替換

* s.strip([chars])

#把s中前後chars中有的字元全部去掉,可以理解為把s前後chars替換為none

* s.lstrip([chars])

* s.rstrip([chars])

* s.expandtabs([tabsize])

#把s中的tab字元替換沒空格,每個tab替換為tabsize個空格,預設是8個

字串的分割和組合:

* s.split([sep, [maxsplit]])

#以sep為分隔符,把s分成乙個list。maxsplit表示分割的次數。預設的分割符為空白字元

* s.rsplit([sep, [maxsplit]])

* s.splitlines([keepends])

#把s按照行分割符分為乙個list,keepends是乙個bool值,如果為真每行後而會保留行分割符。

* s.join(seq) #把seq代表的序列──字串序列,用s連線起來

* string.maketrans(from, to)

#返回乙個256個字元組成的翻譯表,其中from中的字元被一一對應地轉換成to,所以from和to必須是等長的。

* s.translate(table[,deletechars])

#使用上面的函式產後的翻譯表,把s進行翻譯,並把deletechars中有的字元刪掉。需要注意的是,如果s為unicode字串,那麼就不支援 deletechars引數,可以使用把某個字元翻譯為none的方式實現相同的功能。此外還可以使用codecs模組的功能來建立更加功能強大的翻譯表。

字串還有一對編碼和解碼的函式:

* s.encode([encoding,[errors]])

#其中encoding可以有多種值,比如gb2312 gbk gb18030 bz2 zlib big5 bzse64等都支援。errors預設值為"strict",意思是unicodeerror。可能的值還有'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace' 和所有的通過codecs.register_error註冊的值。這一部分內容涉及codecs模組,不是特明白

* s.decode([encoding,[errors]])

字串的測試函式,這一類函式在string模組中沒有,這些函式返回的都是bool值:

* s.startwith(prefix[,start[,end]])

#是否以prefix開頭

* s.endwith(suffix[,start[,end]])

#以suffix結尾

* s.isalnum()

#是否全是字母和數字,並至少有乙個字元

* s.isalpha() #是否全是字母,並至少有乙個字元

* s.isdigit() #是否全是數字,並至少有乙個字元

* s.isspace() #是否全是空白字元,並至少有乙個字元

* s.islower() #s中的字母是否全是小寫

* s.isupper() #s中的字母是否便是大寫

* s.istitle() #s是否是首字母大寫的

字串型別轉換函式,這幾個函式只在string模組中有:

* string.atoi(s[,base])

#base預設為10,如果為0,那麼s就可以是012或0x23這種形式的字串,如果是16那麼s就只能是0x23或0x12這種形式的字串

* string.atol(s[,base]) #轉成long

* string.atof(s[,base]) #轉成float

字串處理的一些應用

1 牛牛喜歡彩色的東西,尤其是彩色的瓷磚。牛牛的房間內鋪有l塊正方形瓷磚。每塊磚的顏色有四種可能 紅 綠 藍 黃。給定乙個字串s,如果s的第i個字元是 r g b 或 y 那麼第i塊瓷磚的顏色就分別是紅 綠 藍或者黃。牛牛決定換掉一些瓷磚的顏色,使得相鄰兩塊瓷磚的顏色均不相同。請幫牛牛計算他最少需要...

python中字串的一些格式化處理

字串格式化處理一般有以下幾種 1.用 s或 d等進行格式化,如下 name input name age input age edu input edu salary input salary s name s age s educ s salary s name,age,edu,salary pr...

C 一些字串處理函式

1.複製函式 我更願意稱之為 字串覆蓋函式 a.strcpy str1,str2 將字串str2 覆蓋到str1上 b.strncpy str1,str2,n 2.拼接函式 a.strcat str1,str2 將str2接到str1後面 b.strncat str1,str2,n 3.比較函式 a...