Python字符串方法详解
Python字符串集合了许多字符串相关的算法,以方法成员的方式提供接口,使用起来非常方便。 字符串方法大约有几十个,这些方法可以分为如下几类:填充、删减、变形、分切、连接、判定、查找、替换、编码。
填充
- center(width(, fillchar))
fillchar 参数指定了用以填充的字符,默认为空格
>>> print('ab'.center(4,'*')) *ab* >>> print('ab'.center(8)) ab
- ljust(width(, fillchar))
左对齐,后面填充
>>> print('py'.ljust(6,'*')) py****
- rjust(width[, fillchar])
右对齐,前面填充
>>> print('py'.rjust(6,'*')) ****py
- zfill(width)
前方补0,若字符串前有+/-,则0填充在+/-之后
>>> print('ab'.zfill(6)) 0000ab >>> print('+ab'.zfill(6)) +000ab
- expandtabs([tabsize])
把字符串中的制表符(tab)转换为适当数量的空格,默认的tabsize为8
删减
- strip([chars])
移除两边的字符chars,默认为空白(空格,制表符,换行符)
>>> print('*abc*'.strip(('*'))) abc
- lstrip([chars])
移除左边的字符chars
>>> print(' abc*'.rstrip()) abc*
- rstrip([chars])
移除右边的字符chars
变形
- lower()
全部转换为小写
>>> print('ab XY'.title()) Ab Xy
- upper()
全部转换为大写
>>> print('ab XY'.upper()) AB XY
- capitalize()
转换为首字母大写,其他字母小写
>>> print('abc DE'.capitalize()) Abc de
- swapcase()
大小写互换
>>> print('abc XYZ'.swapcase()) ABC xyz
- title()
转换为个单词首字母大写
>>> print('ab XY'.title()) Ab Xy
str.casefold()
转换为大小写无关字符串比较的格式字符串
分切
- partition(sep)
接受一个字符串参数,并返回一个3个元素的 tuple 对象。如果sep没出现在母串中,返回值是 (sep, ‘’, ‘’);否则,返回值的第一个元素是 sep 左端的部分,第二个元素是 sep 自身,第三个元素是 sep 右端的部分。
>>> print('abcdef'.partition('cd')) ('ab', 'cd', 'ef') >>> print('abcdef'.partition('g')) ('abcdef', '', '')
- split([sep [,maxsplit]])
参数 maxsplit 是分切的次数,即最大的分切次数,所以返回值最多有 maxsplit+1 个元素
>>> ' hello world!'.split() ['hello', 'world!'] >>> ' hello world!'.split(' ') ['', '', 'hello', '', '', 'world!']
连接
- join(seq)
将可迭代的字符串序列连接成一条长字符串
>>> conf = {'host':'127.0.0.1', 'db':'spam', 'user':'sa', 'passwd':'eggs'} >>> ';'.join("%s=%s"%(k, v) for k, v in conf.iteritems()) 'passswd=eggs;db=spam;user=sa;host=127.0.0.1'
判定
以下方法较为简单,就不再用代码阐述
-
isalnum()
是否全为字母或数字 -
isalpha()
是否全为字母 -
isdigit()
是否全为数字(0~9) -
islower()
是否全部为小写 -
isupper()
是否全部为大写 -
isspace()
判断字符是否是空白字符,没有任何字符不算是空白 -
istitle()
是否为标题,即各单词首字母大写,不允许非首字母大写 -
isidentifier()
是否满足标识符定义规则 -
isprintable()
是否可打印字符(制表符、换行符就不是可打印字符,但空格是) -
endswith(suffix[,start[, end]])
检查字符串str是否以suffix结尾,返回True和False,suffix可以是一个元组(tuple)。可以指定起始start和结尾end的搜索位置。
>>> print('abcdef'.endswith('ef')) True >>>print('abcxyz'.endswith('xyz',0,5)) False #搜索范围为‘’abcxy‘’
- startswith(prefix[, start[, end]])
同理用来判断字符串是否以prefix开头
>>> print('abcdef'.startswith(('a','ef'))) True #元组中只要有一个正确则True
查找
- count( sub[, start[, end]])
返回字符串中子串sub出现的次数,可以指定起始与结束位置,索引从0开始,不包括end边界
>>> print('xyabxyxy'.count('xy',1,8)) 2
- find( sub[, start[, end]])
搜索字符串S中是否包含子串sub,若包含则返回sub的索引位置,否则返回-1,可指定起始和结束的搜索位置
>>> print('abcxyzXY'.find('xy')) 3 >>> print('abcxyzXY'.find('xy',4)) -1
-
index( sub[, start[, end]])
与find()一样,唯一不同在于找不到子串时,返回ValueError错误 -
rfind( sub[, start[,end]])
返回搜索到的最右边的子串位置,如果只搜索到1个或没有搜索到子串时,和find()是等价的
>>> print('xyzabcabc'.rfind('bc')) 7
- rindex( sub[, start[, end]])
同上
替换
- replace(old, new[,count])
将字符串中的子串old替换为new字符串,若给定count,则只替换前count个的old子串,如果搜索不到子串old,则返回字符串S
>>> print('abcxyzoxy'.replace('xy','XY')) abcXYzoXY >>> print('abcxyzoxy'.replace('mn','XY',1)) abcxyzoxy
编码
-
encode([encoding[,errors]])
-
decode([encoding[,errors]])
这是一对互逆操作的方法,用以编码和解码字符串。因为str是平台相关的,它使用的内码依赖于操作系统环境,而unicode是平台无关的,是Python内部的字符串存储方式。unicode可以通过编码(encode)成为特定编码的str,而str也可以通过解码(decode)成为unicode。
- Python 字符串方法详解
- Python3内置字符串方法详解
- python字符串连接的三种方法及其效率、适用场景详解
- Python 字符串方法分类详解
- Python 字符串方法详解
- Python 字符串方法详解
- 对python 匹配字符串开头和结尾的方法详解
- Python 字符串方法详解
- Python内置字符串操作处理方法详解
- Python 字符串方法详解
- Python 3.x 字符串的makestrans函数和translate方法使用详解
- python字符串连接的三种方法及其效率、适用场景详解
- Python 字符串方法详解
- 详解Python3中字符串中的数字提取方法
- Python 字符串方法详解
- Python内置字符串操作处理方法详解
- Python 字符串方法详解
- 详解Python3中字符串中的数字提取方法
- Python实现字符串格式化输出的方法详解
- python字符串连接的三种方法及其效率、适用场景详解