前言

上一篇介绍了列表的常用方法,其实字符串的方法比列表的方法多得多,这里主要列举几个比较常用的。

1.center

center 方法是通过在字符串两边添加填充字符(默认是空格)让字符串居中,示例如下:

>>> a = 'wabdaw'
>>> a.center(20)
' wabdaw '

>>> a = 'wadnjnj'
>>> a.center(20,"*")
'******wadnjnj*******'

2.find

find 方法是用于在字符串中查找子串,如果找到,就返回子串的第一个字符的索引,否则返回-1. 示例如下:

>>> a = "my name is jack"
>>> a.find('name')
3
>>> a.find('waww')
-1

其中 find 方法还可以指定查找的起点和终点,或者只指定起点或终点:

>>> a = "my name is jack , this is my sister"
>>> a.find('my',3)
26
>>> a.find('my')
0
>>> a.find('my',0,5)
0

3.join

join 是一个非常重要的字符串方法,作用和 split相反,用于合并序列的元素,注意,这里的序列不能时数字列表。

>>> a = ['A','B','C','D']
>>>> '+'.join(a)
'A+B+C+D'

如果合并的序列为数字序列,将会报错:

>>> a = [1,2,3,4]
>>> '+'.join(a)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: sequence item 0: expected str instance, int found

4.lower

方法 lower 返回字符串的小写版本。

>>> a = 'this is BOOK'
>>> a.lower()
'this is book'

5.title

方法 title 用于将字符串所有单词首字母大写,其他所有字母小写。

>>> a = 'this is BOOK'
>>> a.title()
'This Is Book'

但是这个方法在界定边界时可能会不合理,例如:

>>> a = "that's ok"
>>> a.title()
"That'S Ok"

针对以上问题,可以使用模块 string 中的函数 capwords 来解决:

>>> import string
>>> string.capwords(a)
"That's Ok"

6.replace

replace 将指定子串替换为另一个字符串,并返回替换后的结果。

>>> a = 'this is my sister,my sister is beautiful'
>>> a.replace('sister','brother')
'this is my brother,my brother is beautiful'

注意,这里是替换所有找到的字符串,而不仅仅只替换一个。

7.split

split 的作用刚好与 join 相反,用于拆分字符串为序列

>>> a = '1+2+3+4'
>>> a.split('+')
['1', '2', '3', '4']

如果没有置顶分隔符,将默认在单个或多个连续的空白字符(空格、制表符、换行符)处进行拆分。

8.strip

方法 strip 用于将字符串开头和末尾的空白(不包括中间的空白)删除,并返回删除后的结果。

>>> a = '   **wdad   '
>>> a.strip()
'**wdad'

当然,还可以指定要删除哪些字符:

>>> a
' **wdad '
>>> a.strip(' *')
'wdad'

如上,指定要删除空格和星号。

9.translate

translate 与 replace 一样替换字符串的特定部分,但不同的是 translate 只能进行单字符替换,这个方法的优势在于能够同时替换多个字符,因此效率 比 replace 高。但是其用法稍微麻烦一些。
要使用 translate 首先要创建一个转换表,这个转换表指出了不同 Unicode 码点之间的转换关系。要创建转换表,可对字符串类型 str 调用方法 maketrans,这个方法接收两个长度一样的字符串,并且指定将第一个字符串中的每个字符都替换成第二个字符串中的相应字符。举个例子:

>>> a = 'adhbxjawuka adhasnkwq'
>>> table = str.maketrans('abd','123')
>>> a.translate(table)
'13h2xj1wuk1 13h1snkwq'

这里 table就是创建好的一个转换表,这个转换表的意思就是将需要转换的字符串(这里是a)中所有的
‘a’ 转换成 ‘1’
‘b’ 转换成 ‘2’
‘d’ 转换成 ‘3’
这里是一一对应关系。
通过示例结果就很容易理解了。