Python 3.2 字符串方法学习总结(2)

str.title():
字符串中每个单词的首字母大写,其余小写。单词的首字符为非字母字符也不影响转换。字符串仅包含非字母字符合法,但返回原字符串。如:
'ab cd'.title() -->'Ab Cd' //字符串中每个单词的首字母大写
'中国ab 123cd'.title() -->'中国Ab 123Cd' //即使首字符为非字母字符,也可以进行转换
'中国 123'.title() -->'中国 123'

str.center(width[,fillchar]):
返回一个原字符串居中,长度为width的新字符串,width要大于len(str),否则返回原字符串,原字符串开头和结尾处使用fillchar进行填充,默认为空格。
注:width为偶数时,fillchar将平均地填充到原字符串的开头和结尾;为奇数时,fillchar优先填充前面。如:
'abcd'.center(3) -->'abcd'
'abcd'.center(8) -->' abcd '
'abcd'.center(8, *) -->'**abcd**'
'abcd'.center(7, *) -->'**abcd*'

str.ljust(width[, fillchar]):
返回一个长度为width,左对齐的字符串,最右边填充fillchar,默认为空格。width要大于len(str),否则返回原字符串。如:
‘abcd’.ljust(10) -->’abcd ‘

str.rjust(width[, fillchar]):
与str.ljust()类似,但是它返回一个右对齐的字符串,最左边填充fillchar。

str.lstrip([chars]):
返回一个去除前了导字符的新字符串,chars参数是一个字符串,它包含了所有将要被移除的字符集合。默认为空格。
注:关于lstrip函数(包括rstrip和strip),网上有很多文章,但都讲的不清不楚。它实际的意思是,从原字符串的最左边开始,匹配chars里包含的所有字符,直至遇到第一个非chars字符为止,原字符串中匹配到的所有字符都被移除。
‘’.lstrip(‘cmowz.’) -->example.com
从字符串的最左边开始匹配,直至遇到了非chars字符e为止,一共匹配了3个w字符和一个.字符,遇到e匹配结束。
'xyxxyy testyx yx yyx'.lstrip('xy ') -->'testyx yx yyx'
从字符串的最左边开始匹配,直至遇到非chars字符t为止,一共匹配了三个x三个y,和一个空格,遇到t匹配结束。

str.rstrip([chars]):
与str.lstrip()相反,从最右边开始匹配。
'xyxxyy testyx yx yyx'.rstrip('xy ') -->'xyxxyy test'

str.strip([chars]):
从字符串的两头开始匹配。
'xyxxyy testyx yx yyx'.strip('xy ') -->test

str.expandtabs([tabsize]):
把字符串中的所有制表符替换成零个或多个空格,每个制表符替换成多少个空格,由制表符在字符串中的位置和tabsize共同决定。tabsize指定每个制表符替换成的空格数,默认为8个。如:
'\t\t this\tis test.'.expandtabs(8) -->' this is test.'
上述示例中,前两个\t,每个都替换成了8个空格,而第三个\t貌似只替换成了4个。实际上不然,因为制表符的制表位是从每行开头算起的,所以第三个制表符的制表位是从行首开始的第24个位置,刚好在is的i前面,而不是从this后面开始算的第8个位置。这就是所谓的共同决定。

str.zfill(width):
返回一个长度为width的数字字符串,最左边填充0。如果width小于等于原字符串长度,则返回原字符串。主要用于数字类字符串的格式化。如:
'abc'.zfill(5) --> '00abc' //一般不会做这种格式化,没什么意义
'123'.zfill(5) --> '00123'


查找 & 替换类方法:
str.count(sub[, start[, end]]):
统计某个字符中子字符串sub的个数。start和end指定统计范围,未指定则默认全字符串范围内统计。如:
'abcdabac'.count('ab') -->2
'abcdabac'.count('ab', 2,) -->1

str.find(sub[, start[, end]]):
查找子字符串在字符串中出现的第一个位置,start和end指定一个查找范围。未找到返回-1。
'0123234'.find('23') -->2
'0123234'.find('23', 1) -->2
注:1、find查找的是子字符串在全字符串中出现的第一个位置,匹配到字符串就结束查找,不管后面还有没有匹配的字符串。
2、find查找的是子字符串在全字符串出现的第一个位置,而不是指定切片中的第一个位置。
3、如果仅想判断子字符串是否在某一字符串中,用in判断符即可,无需find。

str.rfind(sub[, start[, end]]):
跟find方法一样,返回指定子串的index位置,只不过rfind从字符串的最右边开始查找,找不到时返回-1。注意:从最右边开始查找,但index位置却是从原字符串的最左边开始算的。如:
'ABCDEEF'.find('E') -->4 //从最左边开始查找,从A到第一个D后面的E结束,返回索引值4
'ABCDEEF'.rfind('E') -->5 //从最右边开始查找,从A到第一个F前面的E结束,返回索引值5

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/ce6c44a788420bff83c3f6471d1af731.html