類型 |
方法 |
注解 |
填充 |
center(width[, fillchar]), ljust(width[, fillchar]), rjust(width[, fillchar]), zfill(width), expandtabs([tabsize]) |
- fillchar 參數(shù)指定了用以填充的字符,默認(rèn)為空格
- zfill的z為zero的縮寫,顧名思義,是以字符0進(jìn)行填充,用于數(shù)值輸出
- expandtabs()的tabsize 參數(shù)默認(rèn)為8。它的功能是把字符串中的制表符(tab)轉(zhuǎn)換為適當(dāng)數(shù)量的空格。
|
刪減 |
strip([chars]), lstrip([chars]), rstrip([chars]) |
chars為指定要去掉的字符,默認(rèn)為空白字符,它由string.whitespace常量定義 |
變形 |
lower(),#全部小寫 upper(),#全部小寫 capitalize(),#首字母大寫 swapcase(),#大小寫交換 title()#每個(gè)單詞第一個(gè)大寫,其他小寫 |
因?yàn)閠itle() 函數(shù)并不去除字符串兩端的空白符也不會(huì)把連續(xù)的空白符替換為一個(gè)空格, 所以建議使用string 模塊中的capwords(s)函數(shù),它能夠去除兩端的空白符,再將連續(xù)的空白符用一個(gè)空格代替。
>>> ‘ hello world!’.title()
‘ Hello World!’
>>> string.capwords(‘ hello world!’)
‘Hello World!’ |
切割 |
partition(sep), rpartition(sep), splitlines([keepends]), split([sep [,maxsplit]]), rsplit([sep[,maxsplit]]) |
- partition()函數(shù)族是2.5版本新增的方法。它接受一個(gè)字符串參數(shù),并返回一個(gè)3個(gè)元素的 tuple 對(duì)象。
如果sep沒出現(xiàn)在母串中,返回值是 (sep, ‘’, ‘’); 否則,返回值的第一個(gè)元素是 sep 左端的部分,第二個(gè)元素是 sep 自身,第三個(gè)元素是 sep 右端的部分。 - 參數(shù) maxsplit 是分切的次數(shù),即最大的分切次數(shù),所以返回值最多有 maxsplit+1 個(gè)元素。
- s.split() 和 s.split(‘ ‘)的返回值不盡相同
- >>> ‘ hello world!’.split()
- ['hello', 'world!']
- >>> ‘ hello world!’.split(‘ ‘)
- ['', '', 'hello', '', '', 'world!']
產(chǎn)生差異的原因在于當(dāng)忽略 sep 參數(shù)或sep參數(shù)為 None 時(shí)與明確給 sep 賦予字符串值時(shí) split() 采用兩種不同的算法。 對(duì)于前者,split() 先去除字符串兩端的空白符,然后以任意長(zhǎng)度的空白符串作為界定符分切字符串 即連續(xù)的空白符串被當(dāng)作單一的空白符看待; 對(duì)于后者則認(rèn)為兩個(gè)連續(xù)的 sep 之間存在一個(gè)空字符串。因此對(duì)于空字符串(或空白符串),它們的返回值也是不同的:
>>> ”.split()
[]
>>> ”.split(‘ ‘)
[''] |
連接 |
join(seq) |
join() 函數(shù)的高效率(相對(duì)于循環(huán)相加而言),使它成為最值得關(guān)注的字符串方法之一。 它的功用是將可迭代的字符串序列連接成一條長(zhǎng)字符串,如:
>>> conf = {‘host’:’127.0.0.1′,
… ‘db’:'spam’,
… ‘user’:'sa’,
… ‘passwd’:'eggs’}
>>> ‘;’.join("%s=%s"%(k, v) for k, v in conf.iteritems())
‘passswd=eggs;db=spam;user=sa;host=127.0.0.1′ |
判定 |
isalnum(), isalpha(), isdigit(), islower(), isupper(), isspace(), istitle(), startswith(prefix[, start[, end]]), endswith(suffix[,start[, end]]) |
這些函數(shù)都比較簡(jiǎn)單,顧名知義。需要注意的是*with()函數(shù)族可以接受可選的 start, end 參數(shù),善加利用,可以優(yōu)化性能。 另,自 Py2.5 版本起,*with() 函數(shù)族的 prefix 參數(shù)可以接受 tuple 類型的實(shí)參,當(dāng)實(shí)參中的某人元素能夠匹配,即返回 True。 |
查找 |
count( sub[, start[, end]]), find( sub[, start[, end]]), index( sub[, start[, end]]), rfind( sub[, start[,end]]), rindex( sub[, start[, end]]) |
find()函數(shù)族找不到時(shí)返回-1,index()函數(shù)族則拋出ValueError異常。 另,也可以用 in 和 not in 操作符來判斷字符串中是否存在某個(gè)模板。 |
替換 |
replace(old, new[,count]), translate(table[,deletechars]) |
replace()函數(shù)的 count 參數(shù)用以指定最大替換次數(shù) translate() 的參數(shù) table 可以由 string.maketrans(frm, to) 生成 translate() 對(duì) unicode 對(duì)象的支持并不完備,建議不要使用。 |
編碼 |
encode([encoding[,errors]]), decode([encoding[,errors]]) |
這是一對(duì)互逆操作的方法,用以編碼和解碼字符串。因?yàn)閟tr是平臺(tái)相關(guān)的,它使用的內(nèi)碼依賴于操作系統(tǒng)環(huán)境, 而unicode是平臺(tái)無關(guān)的,是Python內(nèi)部的字符串存儲(chǔ)方式。 unicode可以通過編碼(encode)成為特定編碼的str,而str也可以通過解碼(decode)成為unicode。 |