1. 程式人生 > >python基本資料型別之字串(二)

python基本資料型別之字串(二)

python中字串的替換方法主要有:center、rjust\ljust、expandtabs、format\format_map(格式化)、strip、rstrip\lstrip、replace和zfill。其中最重要的兩個方法是replace和format。
1、replace
replace方法是用新子串替換原來字串中的子串。
該方法有3個引數——replace(old, new, count),其中old是指原字串中的子串;new是用來替換的新子串;count=None是預設引數,指定需要替換的子串個數,預設為None表示替換全部子串。

s = 'xiangfeiepo, haqishipugai'
v = s.replace('i','*')
print(v)

列印結果:

x*angfe*epo, haq*sh*puga*

當指定count時:

s = 'xiangfeiepo, haqishipugai'
v = s.replace('i', '*', 2)
print(v)

列印結果:

x*angfe*epo, haqishipugai

其中count也可以賦值為True或False。當賦值為True時,表示只替換第一個子串;當賦值為False時,表示不進行替換。
這一點涉及到了python中的型別轉換。python中任何型別都可以轉換為bool型,對於int型別來說,True為1,False為0。

2、center、rjust、ljust
這3個方法是用來調整字串的對齊方式,center是居中對齊,rjust/ljust分別是右對齊和左對齊。
3個方法都需要2個引數——center(width, fillchar=None),width用來指定將字串擴充套件至多少個字元,fillchar指定了其餘位置用什麼字元來進行填充。fillchar是預設引數,預設值None表示用空格進行填充。

s = 'YeYeYe'
v = s.center(20, '*')
v1 = s.rjust(20, '*')
v2 = s.ljust(20, '*')
print(v)
print(v1)
print(v2)

列印結果:

*******YeYeYe*******
**************YeYeYe
YeYeYe**************

如上所示,center將原字串置於字串中央,用指定字元將原字串填充至20個字元。rjust將原字串置於最右邊(ljust將字串置於最左邊),並將左邊(右邊)用指定字元填充。

3、expandtabs
expandtabs方法是將字串中的tab(\t)替換成空格。用具體的例子可以更好地理解該方法:

s = "haowefnowg\tahufebg\tadbge\tabdoane3"
v = s.expandtabs(6)
print(v)

列印結果如下:

haowefnowg  ahufebg     adbge abdoane3

expandtabs(6)表示程式會以6個字元為單位對原字串進行擷取。首先擷取第一個6位(字元)——"haowef",該6位子串中沒有\t,因此照原樣輸出;繼續擷取6個字元的子串,"nowg\t"這其中存在\t,因此,\t前面的字元會按原樣輸出,\t被替換成了2個(6-4=2)空格。照此規律繼續擷取下面的字元並進行替換。
該方法可以將原來字串中的\t替換成若干個空格。expandtabs方法一般用來將使用者的輸出製作成表格進行輸出:

s = '使用者名稱\t密碼\t郵箱\nguyexiangyun\t123456\[email protected]\n'
v = s.expandtabs(30)
print(v)

列印結果:

使用者名稱                           密碼                            郵箱
guyexiangyun                  123456                        [email protected]

4、strip、rstrip、lstrip
這3個方法是用來刪除字串中的指定字元。strip刪除字串兩端的指定字元,而rstrip\lstrip分別是用來刪除字串右端和左端的字元。
這3個方法僅有一個預設引數chars=None,用來指定要刪除的字元。預設是刪除字串首尾的空格。

s = 'jeojfowei djw je'
v = s.strip('je')
v1 = s.rstrip('je')
v2 = s.lstrip('jeo')
print(v)
print(v1)
print(v2)

列印結果:

ojfowei djw 
jeojfowei djw 
fowei djw je

當字串兩端不存在指定字元時,strip方法會返回原字串。

5、zfill
該方法用來擴充套件字串,其餘位置將由0來填充。並且0會被填充在字串的左邊(右對齊)。

s = 'dashidafei'
v = s.zfill(20)
print(v)

列印結果:0000000000dashidafei

6、format和format_map
這兩個方法用來格式化字串,其中設定格式的方式有很多種。具體參見《字串的格式化》