Python字符串的方法及注释
方法 | 描述 | 示例 |
capitalize() | 把字符串的第一个字符改为大写 |
>>> "abc".capitalize() 'Abc |
casefold() | 把整个字符串的所有字符改为小写 |
>>> 'ABC'.casefold() 'abc' |
center(width) | 将字符串居中,并使用空格填充至长度 width 的新字符串 |
>>> 'ABC'.center(10) ' ABC ' |
count(sub[, start[, end]]) | 返回 sub 在字符串里边出现的次数,start 和 end 参数表示范围,可选。 |
>>> 'abcdefaabc'.count('a') 3 >>> 'abcdefaabc'.count('a',5) 2 |
encode(encoding='utf-8', errors='strict') | 以 encoding 指定的编码格式对字符串进行编码。 |
>>> 'abc'.encode() b'abc' |
endswith(sub[, start[, end]]) | 检查字符串是否以 sub 子字符串结束,如果是返回 True,否则返回 False。start 和 end 参数表示范围,可选。 |
>>> 'abcdefg'.endswith('fg') True |
expandtabs([tabsize=8]) | 把字符串中的 tab 符号(\t)转换为空格,如不指定参数,默认的空格数是 tabsize=8。 |
>>> 'I\tLove\tchengxumiao.net'.expandtabs() 'I Love chengxumiao.net' >>> 'I\tLove\tYou'.expandtabs(3) 'I Love You' |
find(sub[, start[, end]]) | 检测 sub 是否包含在字符串中,如果有则返回索引值,否则返回 -1,start 和 end 参数表示范围,可选。 |
>>> 'abcdefg'.find('c') 2 |
index(sub[, start[, end]]) | 跟 find 方法一样,不过如果 sub 不在 string 中会产生一个异常。 |
>>> 'abcdefg'.index('c') 2 |
isalnum() | 如果字符串至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False。 |
>>> 'abc@123'.isalnum() False >>> 'abc123'.isalnum() True |
isalpha() | 如果字符串至少有一个字符并且所有字符都是字母则返回 True,否则返回 False。 |
>>> 'abc'.isalpha() True |
isdecimal() | 如果字符串只包含十进制数字则返回 True,否则返回 False。 |
>>> '123'.isdecimal() True >>> '0xFF'.isdecimal() False |
isdigit() | 如果字符串只包含数字则返回 True,否则返回 False。 |
>>> '123'.isdigit() True |
islower() | 如果字符串中至少包含一个区分大小写的字符,并且这些字符都是小写,则返回 True,否则返回 False。 |
>>> 'abc'.islower() True |
isnumeric() | 如果字符串中只包含数字字符,则返回 True,否则返回 False。 |
>>> '1234567890'.isnumeric() True |
isspace() | 如果字符串中只包含空格,则返回 True,否则返回 False。 |
>>> ' '.isspace() True |
istitle() | 如果字符串是标题化(所有的单词都是以大写开始,其余字母均小写),则返回 True,否则返回 False。 |
>>> 'Abc'.istitle() True |
isupper() | 如果字符串中至少包含一个区分大小写的字符,并且这些字符都是大写,则返回 True,否则返回 False。 |
>>> 'ABC'.isupper() True |
join(sub) | 以字符串作为分隔符,插入到 sub 中所有的字符之间。 |
>>> 'abcdef'.join("123") '1abcdef2abcdef3' |
ljust(width) | 返回一个左对齐的字符串,并使用空格填充至长度为 width 的新字符串。 |
>>> 'ABC'.ljust(10) 'ABC ' |
lower() | 转换字符串中所有大写字符为小写。 |
>>> 'ABC'.lower() 'abc |
lstrip() | 去掉字符串左边的所有空格 |
>>> ' ABC '.lstrip() 'ABC ' |
partition(sub) | 找到子字符串 sub,把字符串分成一个 3 元组 (pre_sub, sub, fol_sub),如果字符串中不包含 sub 则返回 ('原字符串', '', '') |
>>> 'abcdef'.partition('cde') ('ab', 'cde', 'f') |
replace(old, new[, count]) | 把字符串中的 old 子字符串替换成 new 子字符串,如果 count 指定,则替换不超过 count 次。 |
>>> 'abcdefg'.replace('cde','123') 'ab123fg' |
rfind(sub[, start[, end]]) | 类似于 find() 方法,不过是从右边开始查找。 |
>>> 'abcdefg'.rfind('f') 5 |
rindex(sub[, start[, end]]) | 类似于 index() 方法,不过是从右边开始。 |
>>> 'abcdefg'.rindex('e') 4 |
rjust(width) | 返回一个右对齐的字符串,并使用空格填充至长度为 width 的新字符串。 |
>>> 'ABC'.rjust(10) ' ABC' |
rpartition(sub) | 类似于 partition() 方法,不过是从右边开始查找。 |
>>> 'abcdefg'.rpartition('ef') ('abcd', 'ef', 'g') |
rstrip() | 删除字符串末尾的空格。 |
>>> ' BAC '.rstrip() ' BAC' |
split(sep=None, maxsplit=-1) | 不带参数默认是以空格为分隔符切片字符串,如果 maxsplit 参数有设置,则仅分隔 maxsplit 个子字符串,返回切片后的子字符串拼接的列表。 |
>>> 'abc cba abc'.split() ['abc', 'cba', 'abc'] >>> 'abc,cba,abc'.split(',') ['abc', 'cba', 'abc'] |
splitlines(([keepends])) | 按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,默认参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符 |
>>> 'abc\ndef\t123'.splitlines() ['abc', 'def\t123'] >>> 'abc\ndef\rgh\r\n123'.splitlines() ['abc', 'def', 'gh', '123'] >>> 'abc\ndef\rgh\r\n123'.splitlines(True) ['abc\n', 'def\r', 'gh\r\n', '123'] |
startswith(prefix[, start[, end]]) | 检查字符串是否以 prefix 开头,是则返回 True,否则返回 False。start 和 end 参数可以指定范围检查,可选。 |
>>> 'abcdef'.startswith('ab') True |
strip([chars]) | 删除字符串前边和后边所有的空格,chars 参数可以定制删除的字符,可选。 |
>>> ' ABC '.strip() 'ABC' |
swapcase() | 翻转字符串中的大小写。 |
>>> 'aBc'.swapcase() 'AbC' |
title() | 返回标题化(所有的单词都是以大写开始,其余字母均小写)的字符串。 |
>>> "abc".title() 'Abc' |
translate(table) | 根据 table 的规则(可以由 str.maketrans('a', 'b') 定制)转换字符串中的字符。a和b的长度必须相等 |
'abcabcabc'.translate(str.maketrans('b','k')) 'akcakcakc' |
upper() | 转换字符串中的所有小写字符为大写。 |
>>> 'abc'.upper() 'ABC' |
zfill(width) | 返回长度为 width 的字符串,原字符串右对齐,前边用 0 填充。 |
>>> 'ABC'.zfill(10) '0000000ABC' |
问题小结
capitalize()和title()之间的区别?
>>> '2abc def bcd'.capitalize() '2abc def bcd' >>> '2abc'.title() '2Abc Def Bcd'
string.casefold和
string.lower
区别
python 3.3 引入了string.casefold
方法,其效果和 string.lower
非常类似,都可以把字符串变成小写,那么它们之间有什么区别?他们各自的应用场景?
对 Unicode 的时候用 casefold
string.casefold
官方说明:
Casefolding is similar to lowercasing but more aggressive because it is intended to remove all case distinctions in a string. For example, the German lowercase letter
'ß'
is equivalent to"ss"
. Since it is already lowercase,lower()
would do nothing to'ß'
;casefold()
converts it to"ss"
.The casefolding algorithm is described in section 3.13 of the Unicode Standard
lower()
只对 ASCII 也就是 'A-Z'
有效,但是其它一些语言里面存在小写的情况就没办法了。文档里面举得例子是德语中'ß'
的小写是'ss'
:
s = 'ß' s.lower() # 'ß' s.casefold() # 'ss'
string.lower
官方说明:
Return a copy of the string with all the cased characters [4] converted to lowercase.
The lowercasing algorithm used is described in section 3.13 of the Unicode Standard
未经允许请勿转载:程序喵 » Python3 扩展教程 —— 字符串的方法及注释