python中字符串类型的数据的常用处理方法总结
name=str('hello')#实例化一个字符串对象
dir(name)返回该对象下面的成员(字段、属性、方法)
['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '_formatter_field_name_split', '_formatter_parser', 'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
第一个方法capitalize #首字母进行大写,return 一个首字母大写的string类型数据
例:print name.capitalize() 返回Hello
#注意一个字符串有多个单子,只是首单子的字母进行了大写
name='hello world' print name.capitalize() 返回的未Hello world
第二个方法:center(width,'fillchar') #该方法返回一个原字符串居中,并使用fillchar填充字符串至长度 width 的新字符串
name='hello'
print name.center(10,'*')#返回**hello***
第三个方法:count(sub[, start[, end]]) -> int # 改方法查找子串在字符串中出现的次数
例子:name='zhenzhenzhen'
name.count('zhen') 返回 3
name.count('zhen' ,5) 返回1
name.count('zhen',5,11)返回0
name.count('zhen',5,12) 返回1 # 查找范围不包含end结束索引处的字符,所以结束为11返回为空,12 返回为1
第四、五个方法:'decode', 'encode' 如:decode(encoding='base64',errors='strict')
-
encoding -- 要使用的编码,如"UTF-8"。
-
errors -- 设置不同错误的处理方案。默认为 'strict',意为编码错误引起一个UnicodeError。 其他可能得值有 'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace' 以及通过 codecs.register_error() 注册的任何值。
例子:str='name' str=str.encode('base64') #把base64用这种编码方式编码后的数据赋予str变量
str.decode('base64')# 对于str变量用base64编码方式解码
第六个方法:endswith(sub[,start[,end]])返回 True or False,在一个字符串的start,end范围内查找子串
str = "this is string example....wow!!!";
suffix = "wow!!!";
print str.endswith(suffix); #返回True
print str.endswith(suffix,26)# 返回True
print str.endswith(suffix,27)#返回False
应用实例:
# 输入一个字符串返回满足以下条件的字符串
# 如果字符串长度大等于3,添加 'ing' 到字符串的末尾
# 如果字符串是以 'ing' 结尾的,就在末尾添加 'ly'
# 如果字符串长度小于3,返回原字符串
1 i=1 2 while i<5: 3 strings=raw_input('请输入一个字符串') 4 if len(strings)<3: 5 i=i+1 6 else: 7 if strings.endswith('ing'): 8 strings=strings+'ly' 9 i=i+1 10 else: 11 strings=strings+'ing' 12 i=i+1 13 print strings
第七个方法:str.expandtabs(tabsize=8) tabsize可以为空 tabsize -- 指定转换字符串中的 tab 符号('\t')转为空格的字符数。
str = "this is\tstring example....wow!!!";
print "Original string: " + str;
print "Defualt exapanded tab: " + str.expandtabs();
print "Double exapanded tab: " + str.expandtabs(16);
第八个方法,find(str,beg,end)# 检测字符串中是否包含字符串str,在beg和end范围内,如果有返回字符串开始的索引值,如果没有返回-1
info='abcd' info.find('a',1,5) 返回-1 info.find('a') 返回0 info.find('a',1) 返回-1
第九个方法 format '{}{}{}'.format(*arg,**arg) 返回格式化好了的字符串
默认顺序:例 S = 'I {} {}, and I\'am learning'.format('like', 'Python')
设置数字顺序指定格式化的位置
S = 'I {0} {1}, and I\'am learning'.format('like', 'Python')
S = 'I {1} {0} {1}, and I\'am learning'.format('like', 'Python')
第十个方法:str.index(str, beg=0, end=len(string)) 检测字符串中是否包含字符串str,在beg和end范围内,如果有返回字符串开始的索引值,如果没有则报异常
第十一个方法: 'isalnum', 如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False 无入参,string.isalnum()这样使用就可以
第十二个方法:isalpha() 方法检测字符串是否只由字母组成,如果只有字母返回True,否则返回False,同样无入参,string.isalpha()这样使用即可
第十三个方法:isdigit() 方法检测字符串是否只由数字组成,如果只有数字返回True,否则返回False,同样无入参,
第十四个方法:islower() 方法检测字符串是否由小写字母组成,如果只有小写字母返回True,否则返回False,同样无入
第十五个方法:isspace() 方法检测字符串是否只由空格组成,如果是返回True,否则返回False
第十六个方法:istitle() 方法检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写。
第十七个方法:isupper() 方法检测字符串中所有的字母是否都为大写
第十八个方法:join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串,
str.join(sequence)#入参为一个序列
str = "-"; seq = ("a", "b", "c"); # 字符串序列 print str.join( seq );
第十九个方法:ljust方法返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串
str.ljust(width[, fillchar]) 参数 width -- 指定字符串长度。 fillchar -- 填充字符,默认为空格。
mystr='name' print mystr.ljust(10,'*') 返回name******
print mystr.ljust(3,'*') 返回name
第二十个方法:'lower',将字符串中所有的大写字母都转换为小写
第二十一个方法: lstrip() 方法用于截掉字符串左边的空格或指定字符
用法:str.lstrip([chars]) chars --指定截取的字符。
第二十二个方法:partition() 方法用来根据指定的分隔符将字符串进行分割。
如果字符串包含指定的分隔符,则返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。
str = "www.xxx.com"
print str.partition(".") 返回tuple('www','.','xxx','.com')
第二十三个方法:replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。
replace()方法语法:str.replace(old, new[, max])
参数:
old -- 将被替换的子字符串。
new -- 新字符串,用于替换old子字符串。
max -- 可选字符串, 替换不超过 max 次
返回值:
返回字符串中的 old(旧字符串) 替换成 new(新字符串)后生成的新字符串,如果指定第三个参数max,则替换不超过 max 次。
str = "this is string example....wow!!! this is really string"; print str.replace("is", "was"); print str.replace("is", "was", 3); 以上实例输出结果如下: thwas was string example....wow!!! thwas was really string thwas was string example....wow!!! thwas is really string
第二十四个方法:rfind() 返回字符串最后一次出现的位置(从右向左查询),如果没有匹配项则返回-1。
rfind()方法语法:str.rfind(str, beg=0 end=len(string))
参数
str -- 查找的字符串
beg -- 开始查找的位置,默认为 0
end -- 结束查找位置,默认为字符串的长度。
返回值
返回字符串最后一次出现的位置,如果没有匹配项则返回-1。
第二十五个方法'rindex'
第二十六个方法:'rjust'
第二十七个方法:'rpartition',
第二十八个方法:'rsplit',
第二十九个方法:'rstrip'
第三十个方法:split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串
split() 方法语法:str.split(str="", num=string.count(str)).
参数
str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
num -- 分割次数。默认为 -1, 即分隔所有。
第三十一个方法:'splitlines'
第三十二个方法:'startswith',
第三十三个方法:strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。
strip()方法语法:str.strip([chars]);
参数:chars -- 移除字符串头尾指定的字符序列。
返回值:返回移除字符串头尾指定的字符生成的新字符串。
第三十四个方法:swapcase() 方法用于对字符串的大小写字母进行转换
第三十五个方法:title() 方法返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写
第三十六个方法:'translate'
第三十七个方法:upper() 方法将字符串中的小写字母转为大写字母
第三个八个方法:zfill() 方法返回指定长度的字符串,原字符串右对齐,前面填充0。
zfill()方法语法:str.zfill(width)参数
width -- 指定字符串的长度。原字符串右对齐,前面填充0。