Python中字符串对象提供了很多方法来操作字符串,功能相当丰富。必须进行全面的了解与学习,后面的代码处理才能更得心应手,编程水平走向新台阶的坚实基础。目前一共有45个方法,给大家分类整理,可以收藏查询使用。
1 |
# 获取字所有的符串方法 |
语法: str.capitalize()
1 |
"i Love python".capitalize() |
描述: 返回一个满足 标题格式 的字符串。即所有英文单词首字母大写,其余英文字母小写。
语法: str.title()
1 |
"i am very love python".title() |
描述: 将字符串str中的大小写字母同时进行互换。即将字符串str中的大写字母转换为小写字母,将小写字母转换为大写字母。
语法: str.swapcase()
1 |
"I Am Love PYTHON".swapcase() |
语法: str.lower()
1 |
"我爱pythoN Python!".lower() |
语法: str.upper()
1 |
"i am very love python".upper() |
描述: 将字符串中的所有大写字母转换为小写字母。也可以将非英文 语言中的大写转换为小写。
注意 :lower()函数和casefold()函数的区别:lower() 方法只对ASCII编码,即‘A-Z’有效,对于其它语言中把大写转换为小写的情况无效,只能用 casefold() 函数。
语法: str.casefold()
1 |
"Groß - α".casefold()#德语 |
描述: 返回一个长度为width,两边用fillchar(单字符)填充的字符串,即字符串str居中,两边用fillchar填充。若字符串的长度大于width,则直接返回字符串str。
语法: str.center(width , “fillchar”)
1 |
'shuai'.center(10) |
描述: 返回一个原字符串左对齐,并使用fillchar填充(默认为空格)至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。
语法: str.ljust(width, fillchar) -> str 返回一个新的字符串
1 |
'shuai'.ljust(10) |
描述: 返回一个原字符串右对齐,并使用fillchar填充(默认为空格)至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。
语法: str.ljust(width, fillchar)
1 |
'shuai'.rjust(10) |
描述: 返回指定长度的字符串,使原字符串右对齐,前面用0填充到指定字符串长度。
语法: str.zfill(width)
width —— 指定字符串的长度,但不能为空。若指定长度小于字符串长度,则直接输出原字符串。
1 |
'12'.zfill(10) |
描述: 以指定的编码格式编码字符串,默认编码为 ‘utf-8’。encode英文原意 编码。
语法: str.encode(encoding=’utf-8’, errors=’strict’)
1 |
"我爱祖国".encode(encoding="utf8",errors="strict") |
描述: 以 encoding 指定的编码格式解码字符串,默认编码为字符串编码。decode英文意思是 解码,
语法: str.decode(encoding=’utf-8’, errors=’strict’)
1 |
str1 = "我爱学习".encode(encoding="utf-8") |
描述: 查找字符串中指定的子字符串sub第一次出现的位置,可以规定字符串的索引查找范围。若无则返回 -1。
语法: str.find(sub,start,end) -> int 返回整数
1 |
#查找子字符串"o" |
描述: 查找字符串中指定的子字符串sub最后一次出现的位置,可以规定字符串的索引查找范围。若无则返回 -1。
语法: str.rfind(sub,start,end) -> int 返回整数
注:rfind()函数用法与find()函数相似,rfind()函数返回指定子字符串最后一次出现的位置,find()函数返回指定子字符串第一次出现的位置。
1 |
#查找子字符串"o" |
描述: 查找字符串中第一次出现的子字符串的位置,可以规定字符串的索引查找范围[star,end)。若无则会报错。
语法: str.index(sub, start, end) -> int 返回整数
1 |
"I love python".index("o") #默认索引整个字符串 |
语法: str.rindex(sub, start, end) -> int 返回整数。
1 |
"I love python".rindex('o') |
format 函数可以接受不限个参数,位置可以不按顺序。
语法: format(value, format_spec)
1 |
# 位置参数 |
语法: str.format_map(mapping) -> str 返回字符串
参数: mapping 是一个字典对象
1 |
People = {"name": "john", "age": 33} |
语法: str.endswith(“suffix”, start, end) 或str[start,end].endswith(“suffix”) 用于判断字符串中某段字符串是否以指定字符或子字符串结尾。—> bool 返回值为布尔类型(True,False)
注意:空字符的情况。返回值通常为True
1 |
"I love python".endswith('n') |
语法: str.endswith(“suffix”, start, end) 或
str[start,end].endswith(“suffix”) 用于判断字符串中某段字符串是否以指定字符或子字符串结尾。
—> bool 返回值为布尔类型(True,False)
注意:空字符的情况。返回值通常也为True
1 |
"hello,i love python".startswith("h") |
描述: 检测字符串是否由字母和数字组成。str中至少有一个字符且所有字符都是字母或数字则返回 True,否则返回 False
语法: str.isalnum() -> bool 返回值为布尔类型(True,False)
1 |
"seven-11".isalnum() |
描述: 检测字符串是否只由字母组成。字符串中至少有一个字符且所有字符都是字母则返回 True,否则返回 False。
语法: str.isalpha() -> bool 返回值为布尔类型(True,False)
1 |
"I love python".isalpha()#存在空格返回False |
语法: str.isdecimal() -> bool 返回值为布尔类型(True,False)
1 |
"123456".isdecimal() |
描述: 检测字符串是否只由数字组成.字符串中至少有一个字符且所有字符都是数字则返回 True,否则返回 False。
语法: str.isdigit() -> bool 返回值为布尔类型(True,False)
注:能判断“①”,不能判断中文数字。但 isnumeric() 函数可以。
1 |
"python".isdigit() #全为字母 |
描述: 判断str是否是有效的标识符。str为符合命名规则的变量,保留标识符则返回True,否者返回False。
语法: str.isidentifier() -> bool 返回值为布尔类型(True,False)
参数: 无
1 |
"123".isidentifier() #变量名为123 |
描述: 检测字符串中的字母是否全由小写字母组成。(字符串中可包含非字母字符)字符串中包含至少一个区分大小写的字符,且所有这些区分大小写的字符都是小写,则返回 True,否则返回 False。
语法: str.islower() -> bool 返回值为布尔类型(True,False)
参数: 无
1 |
#字符串中的字母全为小写 |
描述: 检测字符串中的字母是否全由大写字母组成。(字符串中可包含非字母字符)。字符串中包含至少一个区分大小写的字符,且所有这些区分大小写的字符都是大写,则返回 True,否则返回 False。
语法: str.isupper() -> bool 返回值为布尔类型(True,False)
参数: 无
1 |
"I LOVE PYTHON".isupper() #全为大写字母 |
描述: 测字符串是否只由数字组成。这种方法是只适用于unicode对象。字符串中只包含数字字符,则返回 True,否则返回 False。
语法: str.isnumeric() -> bool 返回值为布尔类型(True,False)
参数: 无
1 |
u"123456".isnumeric() #全为数字 |
描述: 判断字符串中是否有打印后不可见的内容。如:\n \t 等字符。若字符串中不存在\n \t 等不可见的内容,则返回True,否者返回False。
语法: str.isprintable() -> bool 返回值为布尔类型(True,False)
参数: 无
1 |
#不存在用print()打印后不可见的内容 |
描述: 检测字符串是否只由空格组成。若字符串中只包含空格,则返回 True,否则返回 False。
语法: str.isspace() -> bool 返回值为布尔类型(True,False)
参数: 无
1 |
str1 = " "#空格 |
描述: 检测判断字符串中所有单词的首字母是否为大写,且其它字母是否为小写,字符串中可以存在其它非字母的字符。若字符串中所有单词的首字母为大写,且其它字母为小写,则返回 True,否则返回 False.
语法: str.istitle() -> bool 返回值为布尔类型(True,False)
参数: 无
1 |
"I Love Python".istitle() #各单词的首字母均为大写,其余字母为小写 |
描述: 该函数的作用是去除字符串开头和结尾处指定的字符,不会去除字符串中间对应的字符
语法: str.strip(chars)
参数: chars – 要去除的字符 默认为空格或换行符。
1 |
#默认参数,去除了空格,\n \t \r字符,且未除去字符串中间相应的字符 |
描述: lstrip() 方法用于截掉字符串左边的空格或指定字符。
语法: str.lstrip(chars)
参数: chars–要去除的字符 默认为空格或换行符。
1 |
#去除左边指定字符 |
语法: str.rstrip(chars)
参数: chars –要去除的字符 默认为空格或换行符。
1 |
#去除左边指定字符 |
描述: 制作翻译表,删除表,常与translate()函数连用。 即:返回用于str.translate方法翻译的转换表。
语法: str.maketrans(intab, outtab,delchars)
1 |
str.maketrans() 生成一个字符一对一映射的table,然后使用 translate(table) 对字符串S中的每个字符进行映射。 |
描述: 过滤(删除),翻译字符串。即根据maketrans()函数给出的字符映射转换表来转换字符串中的字符。
注:translate()函数是先过滤(删除),再根据maketrans()函数返回的转换表来翻译。
语法: str.translate(table)
1 |
见上述案例 |
描述: 根据指定的分隔符(sep)将字符串进行分割。从字符串左边开始索引分隔符sep,索引到则停止索引。
语法: str.partition(sep)
参数: sep —— 指定的分隔符。
返回值: (head, sep, tail) 返回一个三元元组,head:分隔符sep前的字符串,sep:分隔符本身,tail:分隔符sep后的字符串。如果字符串包含指定的分隔符sep,则返回一个三元元组,第一个为分隔符sep左边的子字符串,第二个为分隔符sep本身,第三个为分隔符sep右边的子字符串。如果字符串不包含指定的分隔符sep,仍然返回一个三元元组,第一个元素为字符串本身,第二第三个元素为空字符串
1 |
string = 'https://www.google.com.hk/' |
描述: 根据指定的分隔符(sep)将字符串进行分割。从字符串右边(末尾)开始索引分隔符sep,索引到则停止索引。
语法: str.rpartition(sep)
参数: sep —— 指定的分隔符。
返回值: (head, sep, tail) 返回一个三元元组,head:分隔符sep前的字符串,sep:分隔符本身,tail:分隔符sep后的字符串。如果字符串包含指定的分隔符sep,则返回一个三元元组,第一个为分隔符sep左边的子字符串,第二个为分隔符sep本身,第三个为分隔符sep右边的子字符串。如果字符串不包含指定的分隔符sep,仍然返回一个三元元组,第一个元素为字符串本身,第二第三个元素为空字符串。
注:rpartition()函数与partition()函数用法相似,rpartition()函数从右边(末尾)开始索引,partition()函数从左边开始索引。
1 |
string = 'https://www.google.com.hk/' |
描述: 拆分字符串。通过指定分隔符sep对字符串进行分割,并返回分割后的字符串列表。
语法: str.split(sep=None, maxsplit=-1) [n]
1 |
#默认空格分割 |
描述: 拆分字符串。通过指定分隔符sep对字符串进行分割,并返回分割后的字符串列表,类似于split()函数,只不过 rsplit()函数是从字符串右边(末尾)开始分割。
语法: str.rsplit(sep=None, maxsplit=-1) -> list of strings 返回 字符串列表 或str.rsplit(sep=None, maxsplit=-1)[n]
1 |
# 只搜索到一个sep时,两者结果相同 |
描述: 按照(‘\n’, ‘\r’, \r\n’等)分隔,返回一个包含各行作为元素的列表,默认不包含换行符。\n 换行符 \r 回车符 \r\n 回车+换行
语法: S.splitlines([keepends=False])
参数: keepends – 在输出结果里是否去掉行界符(‘\r’, ‘\r\n’, \n’等),默认为 False,不包含行界符,如果为 True,则保留行界符。
1 |
# 字符串以换行符为分隔符拆分,去掉换行符 |
描述: 将iterable变量的每一个元素后增加一个str字符串。
语法: sep.join(iterable)
1 |
python中经常看到join,特别是在自然语言处理的时候,分词什么的,但是很多初学者不理解其中的意思,这里进行详细的介绍,希望对大家能有帮助。 |
描述:把 str.中的 old 替换成 new,如果 count 指定,则替换不超过 count次.。
语法: str.replace(old, new, count)
1 |
s = "我的小伙伴张三" |
描述:将字符串S中的 \t 替换为一定数量的空格。默认N=8。
语法: str.expandtabs(tabsize=8)
tabsize 的默认值为8。tabsize值为0到7等效于tabsize=8。tabsize每增加1,原字符串中“\t”的空间会多加一个空格。
1 |
'01\t012\t0123\t01234'.expandtabs(4) |
描述: 统计字符串里某个字符出现的次数。可以选择字符串索引的起始位置和结束位置。
语法: str.count(“char”, start,end) 或 str.count(“char”)
1 |
'abc--qo-ab'.count('ab') |