|
Sequence Types
sequence类型有六种:strings,byte sequences (bytes objects),byte arrays(bytearray objects),list,tuple,range objects.
sequence类型都支持的通用操作:
成员检查:in、not in
连接:+
复制:*
下标取值:s[i]
切片:s[i : j]
长度检查:len(s)
最小值:min(s)
最大值:max(s)
索引取值:s.index(i)
字符串统计:s.count(i)
String Methods
判断类方法,通常返回一个布尔值:
str.endswith(suffix[,start[,end]]):
判断字符串是否以指定后缀结尾,返回True或False。start和end指定判断的起始范围,默认全字符串。如:
复制代码 代码如下:
'abcde'.endswith('de') -->True
'abcde'.endswith('de',3) -->Flase
str.startwith(prefix[,end]]):
与str.endwith()相反,判断字符串是否以指定前缀开始。
str.islower():
判断字符串中的字母字符是否全部为小写,该方法仅判断字符串中的字母字符,不理会其它字符。字符串必须至少包含一个字母字符,否则返回False。如:
复制代码 代码如下:
‘中国'.islower() -->False
‘ab中国'.islower() -->True
str.isupper():
与st.islower()方法相反,判断所有字母字符是否全部大写。
str.istitle():
判断字符串每个单词的首字母是否大写。字符串必须至少包含一个字母字符,否则返回False。即使首字母字符前面有非字母字符,如中文、数字、下划线等,也不影响对首字母字符的判断。
复制代码 代码如下:
‘中国'.istitle() -->False //字符串不包含字母,返回False
‘中国Abc'.istitle() -->True //虽然首字母字符A前面有非字母字符,仍然返回True
‘-Abc xyz'.istitle() -->False //后一个单词的首字母不是大写,返回False
str.isalnum():
判断字符串是否只包含由文字数字式字符,字符串仅包含中文字符合法。若字符串包含空格、下划线、~等非文字数字式字符,均返回False。如:
复制代码 代码如下:
‘3'.isalnum() -->True
‘中国'.isalnum() -->True
‘-'.isalnum() -->False
注:alphanumberic是一个特殊词汇,它表明这个字符串由数字字符或文字字符组成。如,'3'包括了一个数字字符,'a'包含了一个文字字符,而'3a'同时包括数字字符和字母字符。
str.isalpha():
判断字符串是否只包含文字字符,字符串仅包含中文字符合法。如:
复制代码 代码如下:
‘中国'.isalpha() -->True
‘3'.isalpha() -->False
str.isidentifier():
判断字符串是否是合法的标识符,字符串仅包含中文字符合法,实际上这里判断的是变量名是否合法。如:
复制代码 代码如下:
‘_a'.isidentifier() -->True
‘3a'.isidentifier() -->False
‘中国'.isidentifier() -->True
str.isprintable():
判断字符串所包含的字符是否全部可打印。字符串包含不可打印字符,如转义字符,将返回False。
str.isspace():
判断字符串是否仅包含空格或制表符。注意:空格字符与空白是不同的,如:
复制代码 代码如下:
''.isspace() -->False
' '.isspace() -->True
str.isdecimal():
判断字符串是否只包含十进制数字字符,包括多国语言的十进制数字字符表现形式。如:
复制代码 代码如下:‘3'.isdecimal() -->True
‘u0660'.isdeciaml() -->True
其它语言的十进制数字形式参考:http://www.fileformat.info/info/unicode/category/Nd/list.htm
str.isdigit():
判断字符串是否只包含数字,这里的数字包括十进制数字和其它特殊数字(如上标数字等)。一般地,一个数字是拥有如下属性值的字符:Numeric_Type=Digit或Numeric_Type=Decimal。
str.isnumeric():
判断字符串是否只包含数字字符。数字字符范围很大,一般来说,数字字符是拥有如下属性值的字符:Numeric_Type=Digit,Numeric_Type=Decimal或Numeric_Type=Numeric。
比较isdecimal()、isdigit()、isnumeric(),几个方法检测的范围依次扩大。
格式化类方法,返回一个格式化的新字符串:
str.encode(encoding=”utf-8”,errors=”strict”):
将字符串以utf-8格式进行编码。
str.lower():
把全部字母字符转换成小写,不去管其它非字母字符。字符串全部为非字母字符也是合法的,但返回原字符串。如:
复制代码 代码如下:
'中国123ABC'.lower() --> '中国123abc'
‘中国123'.lower() -->'中国123' //不会报错,返回原字符串
str.upper():
与str.lower()相反,把全部字母字符转换成大写。如:
复制代码 代码如下:
'中国123abc'.upper() --> '中国123ABC'
'中国123'.upper() -->'中国123'
str.swapcase():
把字符串中的大小写字母互换,大写转换成小写,小写转换成大写。不去管非字母类字符。如:
复制代码 代码如下:
'中国123Ab'.swapcase() -->'中国123aB'
'中国123'.swapcase() -->'中国123' //不会报错,返回原字符串
str.capitalize():
字符串首字母大写,其余小写。如果字符串首字符为非字母字符,将返回原字符串。字符串仅包含非字母字符合法,但返回原字符串。如:
复制代码 代码如下:
'ab cd'.capitalize() -->'Ab cd' //只转换字符串的首字母
'中国ab 123cd'.capitalize() -->'中国ab 123cd' //首字符为非字母字符,返回原字符串
'中国 123'.capitalize() -->'中国 123' //不会报错,返回原字符串
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字符为止,原字符串中匹配到的所有字符都被移除。
复制代码 代码如下:
‘www.example.com'.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个。如:
复制代码 代码如下:
'tt thistis test.'.expandtabs(8) -->' this is test.'
上述示例中,前两个t,每个都替换成了8个空格,而第三个t貌似只替换成了4个。实际上不然,因为制表符的制表位是从每行开头算起的,所以第三个制表符的制表位是从行首开始的第24个位置,刚好在is的i前面,而不是从this后面开始算的第8个位置。这就是所谓的共同决定。
(编辑:安卓应用网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|