find
find方法可以在一个较长的字符串中查找子字符串。它返回子串所在位置的最左端索引。如果没有找到则返回-1。
>>> a = 'test'
>>> a.find('s')
2
>>>
find方法其实和列表取步长的方法联用来截取某段需要的字符串。
>>> a = 'hello world'
>>> iwantstring = a[a.find('w'):a.find('r')]
>>> iwantstring
'wo'
>>>
join
join方法是非常重要的字符串方法,它是split方法的逆方法,用来在队列中添加元素。注意:需要添加的队列元素都必须是字符串。
>>> test = ['a','b','c','d']
>>> out = '+'.join(test)
>>> out
'a+b+c+d'
replace
replace方法返回某个字符串的所有匹配项均被替换之后得到的字符串。
>>> a = 'hello world'
>>> b = a.replace('l','t')
>>> b
'hetto wortd'
>>>
split
这是个非常重要的字符串方法,它是join的逆方法,用来将字符串按指定字符串元素进行分割并返回列表。注意:如果不提供任何分隔符,程序会把所有空格作为分隔符(空格、制表、换行等)
>>> a = 'hello world'
>>> b = a.split('l')
>>> b
['he', '', 'o wor', 'd']
>>>
strip
strip方法返回去除两侧(不包含内部)空格的字符串
>>> a = ' hello world '
>>> b = a.strip()
>>> b
'hello world'
>>>
translate
translate方法和replace方法一样,可以替换字符串中的某些部分,但是和前者不同的是,translate方法只处理单个字符。它的优势在于可以同时进行多个替换,有些时候比replace效率高得多。
在使用translate转换前,需要先完成一张转换表。转换表中是以某字符替换某字符的对应关系。因为这个表(事实上是字符串)有多达256个项目,我们还是不要自己写了,用string模块里面的maketrans函数就行了。
maketrans函数接收两个参数:两个等长的字符串,表示第一个字符串中的每个字符都用第二个字符串中相同位置的字符替换。
>>> from string import maketrans
>>> table = maketrans('ho', 'at')
创建这个表后,可以将它用作translate方法的参数,进行字符串的转换:
>>> a = 'hello world'
>>> b = a.translate(table)
>>> b
'aellt wtrld'
translate的第二个参数是可选的,这个参数是用来指定需要删除的字符。
>>> b = a.translate(table, ' ') >>> b 'aelltwtrld' >>>b = a[::-1]
# 创造一个与原字符串顺序相反的字符串
字符串中字符大小写的变换:
S.lower() #小写
S.upper() #大写
S.swapcase() #大小写互换
S.capitalize() #首字母大写
String.capwords(S) #这是模块中的方法。它把S用split()函数分开,然后用
capitalize()把首字母变成大写,最后用join()合并到一起
S.title() #只有首字母大写,其余为小写,模块中没有这个方法
字符串编码和解码的函数:
S.encode([encoding,[errors]])
# 其中encoding可以有多种值,比如gb2312 gbk gb18030 bz2 zlib big5 bzse64等都支持。errors默认值为strict,意思是UnicodeError。可能的值还有'ignore', 'replace', 'xmlcharrefre
S.encode([encoding,[errors]])
# 其中encoding可以有多种值,比如gb2312 gbk gb18030 bz2 zlib big5 bzse64等都支持。errors默认值为"strict",意思是UnicodeError。可能的值还有'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace' 和所有的通过codecs.register_error注册的值。这一部分内容涉及codecs模块,不是特明白
S.decode([encoding,[errors]])
字符串在输出时的对齐:
S.ljust(width,[fillchar]) #输出width个字符,S左对齐,不足部分用fillchar填充,默认的为空格。
S.rjust(width,[fillchar]) #右对齐
S.center(width, [fillchar]) #中间对齐
S.zfill(width) #把S变成width长,并在右对齐,不足部分用0补足