孤叶翔云

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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\tguyexiangyun@163.com\n'
v = s.expandtabs(30)
print(v)

打印结果:

用户名                           密码                            邮箱
guyexiangyun                  123456                        guyexiangyun@163.com

4、strip、rstrip、lstrip
这3个方法是用来删除字符串中的指定字符。strip删除字符串两端的指定字符,而rstrip\lstrip分别是用来删除字符串右端和左端的字符。
这3个方法仅有一个默认参数chars=None,用来指定要删除的字符。默认是删除字符串首尾的非打印字符,包括空格、制表符和换行符。
并且strip方法对字符串的匹配遵循优先最多匹配原则,即优先对字符个数最多的子串进行匹配

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
这两个方法用来格式化字符串,其中设置格式的方式有很多种。具体参见《字符串的格式化》

posted on 2018-12-30 09:48  孤叶翔云  阅读(129)  评论(0编辑  收藏  举报