Python:字符串函数

2023-01-31 04:01:09 python 函数 字符串

String模块中的常量:

string.digits:数字0~9

string.letters:所有字母(大小写)

string.lowercase:所有小写字母

string.printable:可打印字符的字符串

string.punctuation:所有标点

string.uppercase:所有大写字母

>>> import string
>>> string.digits
'0123456789'
>>> string.letters
'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
>>> string.lowercase
'abcdefghijklmnopqrstuvwxyz'
>>> string.printable
'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \t\n\r\x0b\x0c'
>>> string.punctuation
'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
>>> string.uppercase
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'


1、find函数

在一个较长的字符串中查询子字符串,返回子串所在位置最左端索引,没有找到返回-1

>>> title = "Monty python's Flying Circus"
>>> title.find('Monty')
0
>>> title.find('monty')
-1
可以选择起始点和结束点

>>> title.find('Python')
6
>>> title.find('Python', 3)
6
>>> title.find('Python', 3, 10)
-1

2、join函数

在队列中添加元素(只能操作于字符串,返回一个修改后的字符串,但是原字符串不改变)

>>> seq = ['1', '2', '3', '4', '5']
>>> sep = '+'
>>> sep.join(seq)
'1+2+3+4+5'
>>> seq
['1', '2', '3', '4', '5']
>>> dirs = '', 'usr', 'bin', 'env'
>>> '/'.join(dirs)
'/usr/bin/env'
>>> print 'C:' + '\\'.join(dirs)
C:\usr\bin\env

逆方法:split函数

将字符串分割成序列,返回该序列,原字符串不改变

>>> Word = '1+2+3+4+5'
>>> word.split('+')
['1', '2', '3', '4', '5']
>>> word
'1+2+3+4+5'

3、lower函数

返回字符串的小写字母版

>>> 'fafDAWdfaweDWED'.lower()
'fafdawdfawedwed'
扩展:

title函数:首字母大写,其他小写

>>> "that's all folks".title()
"That'S All Folks"
capwords函数:功能同上,为string模块中函数

>>> import string
>>> string.capwords("that's all folks")
"That's All Folks"

4、replace函数

返回某字符串所有匹配项均被替换之后得到的字符串,原字符串不改变

>>> word = 'this is a test'
>>> word.replace('is', 'eez')
'theez eez a test'
>>> word
'this is a test'

maketrans函数:功能同上,string中的转换表,共有256个项目,函数接受2个等长的字符串,第一个字符串中的每个字符都用第二个字符串中相应位置的字符来进行替换

maketrans类似于一种规则,经常与translate结合,以完成一些普通函数无法完成的字符串替换

>>> from string import maketrans
>>> table = maketrans('cs', 'kz')
>>> len(table)
256
>>> table[97:123]
'abkdefghijklmnopqrztuvwxyz'
>>> maketrans('','')[97:123]
'abcdefghijklmnopqrstuvwxyz'

translate函数:功能同上,但是只能处理单个字符,有2个参数,第一个是替换,第二个是删除

例:table承继maketrans中的table

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


5、strip函数

去除两侧(不包括内部)空格的字符串,原序列不变

>>> word = '   this is test    '
>>> word.strip()
'this is test'
>>> word
'   this is test    '
可在strip()加入参数,以去除想要去掉的指定字符

>>> '***  SPAM  *  for  *  everyone!!!  ***'.strip('*')
'  SPAM  *  for  *  everyone!!!  '
>>> '***  SPAM  *  for  *  everyone!!!  ***'.strip('* ')
'SPAM  *  for  *  everyone!!!'
>>> '***  SPAM  *  for  *  everyone!!!  ***'.strip('* !')
'SPAM  *  for  *  everyone'




相关文章