Python学习笔记:字符串的常用方法

落爺英雄遲暮 提交于 2020-02-16 19:09:09


所有的标准序列操作(索引,切片,乘法,成员资格检查,长度,最小值和最大值)都适用于字符串,但字符串是不可变的,因此赋值是非法的。

字符串方法太多了,这里介绍一些最有用的

1.1 center

方法center通过在两边填充字符(默认为空格)让字符串居中

>>> 'hello world'.center(30)
'         hello world          '
>>> 'hello world'.center(30, '*')
'*********hello world**********'

1.2 find

方法find在字符串中查找子串,如果找到,就返回子串的第一个字符的 所以,否则就返回-1。

>>> 'hello world'.find('o')
4
>>> 'hello world'.find('hello')
0
>>> 'hello world'.find('L')
-1

还可以指定搜到的起点和终点。

>>> s = '$$$ hello world $$$'
>>> s.find('$$$')
0
>>> s.find('$$$', 1)
16
>>> s.find('$$$', 0)
0
>>> s.find('d')
14
>>> s.find('$$$', 1, 14)
-1

起点值和终点值指定的搜索范围包含起点,但不包含终点。类似切片的概念(这是Python的惯用做法)。

1.3 join

方法join是一个非常重要的方法,用于合并序列的元素。

>>> s = '-'
>>> seq = ['1', '2', '3', '4', '5']
>>> s.join(seq)
'1-2-3-4-5'

所合并序列的元素必须都是字符串。

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

1.4 split

方法split也是一个非常重要的字符串方法,其作用域join相反,用于将字符串分为序列。

>>> '1-2-3-4-5'.split('-')
['1', '2', '3', '4', '5']

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

>>> '1 2  3 4    5'.split()
['1', '2', '3', '4', '5']

1.5 replace

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

>>> 'Hello World'.replace('o', 'O')
'HellO WOrld'

1.6 translate

方法translate与replace一样替换字符串的特定部分,但不同的是replace只能进行单个字符替换,而translate的优势在于能够同时替换多个字符。
使用translate前必须创建一个转换表,这个转换表指出了不同Unicode码点之间的转换关系。
这个方法接收两个长度相同的参数,他们指定要将第一个字符串中的每个字符都替换长第二个字符串中的相应字符。

>>> table
{99: 107, 115: 122}

>>> 'this is an incredible test'.translate(table)
'thiz iz an inkredible tezt'

还可以使用第三个参数,指定要将哪些字母删除

>>> table = str.maketrans('cs', 'kz', 't')

>>> 'this is an incredible test'.translate(table)
'hiz iz an inkredible ez'

1.7 lower

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

>>> 'Hello World'.lower()
'hello world'

1.8 strip

方法strip将字符串开头和末尾的空白删除,并返回删除后的结果。

>>> ' Hello World   '.strip()
'Hello World'

还可以在一个字符串参数中指定要删除哪些字符(只能删除开头或末尾的指定字符)。注意需要在指定字符串前加上空格

>>> ' **Hello* ! World!! ***   '.strip('*!')
' **Hello* ! World!! ***   '
>>> ' **Hello* ! World!! ***   '.strip(' *!')
'Hello* ! World'

1.9 判断字符串是否满足特定条件

很多字符串方法都以is打头,如isspace,isdigit,他们判断字符串是否具有特定的性质,如果具备,则返回True,否则返回False

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!