为了给自己做个笔记,整理了下python里字符串的方法。有点臭长,使用ctrl+f查找吧。

apitalize()

把字符串第一个字符大写。
例:

a = 'zhangly'
print a.capitalize()
>>> Zhangly

casefold()

把整个字符串的所有字符改为小写,此函数于python3.3引入,如果是python2版本可使用lower()函数。它们的功能是类似的,区别是lower只对ASCII也就是'A-Z'有效。其它语言的小写则需要使用casefold()函数。
例:

a = 'ZHANGLY'
print a.casefold()
>>>zhangly

center(width)

将字符串居中,将使用空格填充至width参数的长度。
例:

a = 'zhangly'
print a.center(20)
>>>      zhangly

count(sub[,start[,end]])

返回指定字符sub在字符串出现的次数,start和end参数表示搜索的范围。
例:

a = 'zhanggggly'
print a.count('g')
>>> 4
# 如果要指定搜索范围,从字符串索引值5开始至10结束
a = 'zhanggggly'
print a.count('g',5,10)
>>> 3

encode(edcoding='utf-8', errors='strict')

以encoding指定的编码格式对字符串进行编码, encoding的参数为要使用的编码,errors参数是不同错误的处理方案,默认为'strict',意思是为编码错误引起一个UnicodeError错误。其它值有'ignore','replace','xmlcharrefreplace','backslashreplace'。
例:

u = u'中文'
#以gb2312的编码对unicode对象进行编码
str = u.encode('gb2312')
#以gbk的编码对unicode对象进行编码
str1 = u.encode('gbk')
#以utf-8的编码对unicode对象进行编码
str2 = u.encode('utf-8')

isinstance(object,type)

判断object对象是否为type参数指定的类型。
例:

#对象是否为整数类型
isinstance(6,int)
>>> True
#对象是否为字符串类型
a = 'zhangly1212'
isinstance(a)
>>> True
#对象是否为列表
a = ('zhangly', 'zhoujl', 'zhangxy')
isinstance(a, list)
>>> False

endswith(sub[,start[,end]])

检测字符串是否以sub字符结束,,start和end参数指定搜索范围。
例:

a = 'zhangly'
print a.endswith('ly')
>>> True

expandtabs(tabsize=8)

将字符串中的tab符号转换为空格,tabsize参数为\t转换为空格的字符数。
例:

a = 'aaa\taaa'
print a.expandtabs()
>>>aaa     aaa

find(sub[,start[,end]])

在字符串中检测是否包含sub字符,如果有则返回索引值,如果没有返回-1。start和end参数表示搜索范围。
例:

a = 'aaaazhanglyaaaaaaa'
print a.find('zhang')
>>> 4

index(sub[,start[,end]])

和find方法一样,不过当sub不在字符串中,会产生一个异常。
例:

a = 'aaaazhanglyaaaaaaa'
print a.index('zhangaa')
>>> # ValueError: substring not found #

isalnum()

如果字符串中至少有一个字符,并且所有字符都是数字或者字母,返回True。否则就返回False。
例:

a = 'zhangly112233'
print a.isalnum()
>>> True
b = 'zhangly@@@123!$%'
print b.isalnum()
>>> False

isalpha()

如果字符串中至少有一个字符,并且所有字符都是字母,返回True。否则就返回False。
例:

a = 'aaaa'
print a.isalpha()
>>> True
b = 'aaa1122'
print b.isalpha()
>>> False

isdecimal()

如果字符串中只包含十进制数字则返回True,否则返回False。
需要注意的是,此方法只适用于unicode对象。定义一个十进制字符串,只需在字符串前加'u'前缀即可。
例:

a = u'ttt888999'
print a.isdecimal()
>>> False
b = u'123445612'
print b.isdecimal()
>>> True

isdigit()

如果字符串只包含数字则返回True,否则返回False。
例:

a = '19998877'
print a.isdigit()
>>> True

islower()

如果字符串中至少包含一个字母字符,并且所有字母都是小写,则返回True,否则返回False。
例:

a = 'Zhangly'
print a.islower()
>>> False

isnumeric()

如果字符串中只包含数字,则返回True,否则返回False。
注意isdecimal(), isdigit(), isnumeric()之间的区别。
isdecimal()的数字是指Unicode数字,全角数字(双字节)
isdigit()的数字指Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字
isnumeric的数字指Unicode数字,全角数字(双字节),罗马数字,汉字数字
更多关于三个字符串之间的用法区别可以点击这个链接查看。
例:

num = "四" # 汉字
num.isdigit()   # False
num.isdecimal() # False
num.isnumeric() # True

isspace()

如果字符串中只包含空格,则返回True,否则返回False。
例:

a = '   '
print a.isspace()
>>> True

istitle()

如果字符串是标题化(所有单词都是以大写开始,其余字母都是小写),则返回True,否则返回False。
例:

a = 'Zhangly'
print a.istitle()
>>> True

isupper()

检测字符串是否都为大写,是则返回True,否则返回False。
例:

a = 'ZHANGLY'
print a.isupper()
>>> True

join(sub)

方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
例:

str = "-";
seq = ("a", "b", "c")
print str.join( seq )
>>> a-b-c

ljust(width)

返回一个左对齐的字符,width参数为字符填充至指定宽度。
例:

str = "this is lilei"
print str.ljust(25, '0')
>>> this is lilei000000000000

lower()

将所有大写的字母变为小写。
例:

a = 'ZHanGLY'
print a.lower()
>>> zhangly

lstrip()

去掉字符串左边的字符
例:

a = '   zhangly'
print a.lstrip()
>>> zhangly

partition(sub)

以sub为分隔符,将字符串分割为一个3元的元组。
例:

str = "zly.life"
print str.partition(".")
>>> ('zly','.','life')

replace(old,new[,count])

替换字符串里的old字符为new,count参数为替换的次数,如果不指定则替换所有搜索到的字符。
例:

a = 'zhangly cool zhangly cool zhangly'
print a.replace('cool', 'awesome')
>>> zhangly awesome zhangly awesome zhangly
print a.replace('cool', 'awesome', 1)
>>> zhangly awesome zhangly cool zhangly

rfind(sub[,start[,end]])

从右开始查找指定的字符,同find用法。
例:

a = 'haoshuaizhangly'
print a.rfind('zhangly')
>>> 8

居然闪过一个问题,为什么有rfind没有lfind?诶,这脑子。。看来不适合做TD

rindex(sub[,start[,end]])

和index用法一样,查找方式是从字符串右边开始。
这里就不举例了。

rjust(width)

返回一个右对齐的字符串,width参数为字符填充至指定宽度。
例:

str = "this is lilei"
print str.rjust(25, '0')
>>> 000000000000this is lilei

rstrip()

删除字符串末尾的空格
例:

str = 'zhangly     '
print len(str)
>>> 12
print str.rstrip()
>>> zhangly
print len(str.rstrip())
>>> 7

split(sep=None,maxsplit=-1)

切分字符串,返回一个列表。如果没有给sep参数,默认是以空格来对字符串分隔。maxsplit为切分的次数。
例:

str = "maya nuke houdini syntheyes"
# 不给参数
print str.split()
>>> ['maya', 'nuke', 'houdini', 'syntheyes']
# 指定切割次数参数
print str.split(' ',1)
>>> ['maya', 'nuke houdini syntheyes']
# 指定切分符参数
print str.split('houdini')
>>> ['maya nuke ', ' syntheyes']

splitlines([keepends])

按照行('\r','\n','\r\n')分割,返回一个列表。参数keepends默认为Fasle,如果为True则保留换行符。
例:

str1 = 'ab c\n\nde fg\rkl\r\n'
print str1.splitlines();
>>> ['ab c', '', 'de fg', 'kl']
str2 = 'ab c\n\nde fg\rkl\r\n'
print str2.splitlines(True)
>>> ['ab c\n', '\n', 'de fg\r', 'kl\r\n']

startswith(prefix[,start[,end]])

检测字符串是否以prefix开头,是则返回True。start和end为检测范围。
例:

a = 'xxxxxzhangly'
print a.startswith('xxxx')
>>> True

strip([chars])

去除字符串前边和后边的所有空格,chars参数可以指定删除的字符,默认为空格。
例:

# 默认用法
str1 = '    zhangly    '
print str1.strip()
>>> zhangly
# 删除首尾指定字符
str2 = 'xxxxxzhanglyxxxxxx'
print str2.strip('x')
>>> zhangly

swapcase()

翻转字符串中的大小写。
例:

str = 'zHANGLY'
print str.swapcase()
>>> Zhangly

title()

返回字符串标题化,所有单词字母以大写开始。
例:

str = 'centos ubuntu debian'
print str.title()
>>> Centos Ubuntu Debian

upper()

将字符串所有字符转换为大写。
例:

str = 'zhangly'
print str.upper()
>>> ZHANGLY

zfill(width)

将原字符右对齐,前面填充0。
例:

str = '19'
print str.zfill(4)
>>> 0019

这对图片序列帧来说太友好了~

本文参照了小甲鱼的字符串方法及注释, 添加了一些范例以便更好的理解,暂时就写到这里。


From zero to hero