Python字符串的方法
一、index、find和rfind方法查找字串所在位置
-
S.find(substr, [start, [end]]):返回S中出现substr的第一个字母的标号,如果S中没有substr则返回-1。start和end作用就相当于在S[start:end]中搜索
-
S.index(substr, [start, [end]]):与find()相同,只是在S中没有substr时,会返回一个运行时错误
-
S.rfind(substr, [start, [end]]):返回S中最后出现的substr的第一个字母的标号,如果S中没有substr则返回-1,也就是说从右边算起的第一次出现的substr的首字母标号
find和rfind如果有结果将返回大于等于0的结果,无结果则返回-1;另外index方法也可以返回子字符串的位置,但是如果找不到会抛出异常
>>> str
'python String Function Strcat'
>>> str.find("on") #默认返回整个字符串中第一次出现"on"的下标。
4
>>> str.find("on",0,10) #在[0:10]之间查找第一次出现"on"的子串。
4
>>> str.find("on",13,) #在[13:]之间查找第一次出现"on"的子串
20
>>> str.rfind("on") #默认返回整个字符串中最后出现"on"的下标。
20
>>> str.rfind("on",0,10) #在[0:10]之间查找最后出现"on"的子串。
4
>>> str.rfind("on",13,) #在[13:]之间查找最后出现"on"的子串的下标。
20
>>> str.index("on")
4
>>> str.index("on",0,10)
4
>>> str.index("on",13,)
20
>>> str.index("Q") #index在找不到时会返回一个异常
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: substring not found
>>> str.find("Q")
-1
>>> str.rfind("Q")
-1
二、从字符串中截取子字符串
python 中没有substr或者substring的方法,但是可以通过数组slice的方法,方便的截取子字符串
>>> str
'python string functionstrcat'
>>> str[0:3] #截取第一位到第三位的字符
'pyt'
>>> str[:] #截取字符串的全部字符
'python string functionstrcat'
>>> str[6:] #截取第七个字符到结尾
' string functionstrcat'
>>> str[:-3] #截取从头开始到倒数第三个字符之前
'python string functionstr'
>>> str[2] #截取第三个字符
't'
>>> str[-1] #截取倒数第一个字符
't'
>>> str[::-1] #创造一个与原字符串顺序相反的字符串
'tacrtsnoitcnuf gnirts nohtyp'
>>> str[-3:-1] #截取倒数第三位与倒数第一位之前的字符
'ca'
>>> str[-3:] #截取倒数第三位到结尾
'cat'
>>> str[:-5:-3]
'tr'
三、判断字符串是否包含某个字串
>>> str
'python string functionstrcat'
>>> "python" in str
True
四、 获得字符串的长度
在python中获得任何集合的长度都可以使用len方法
>>> str
'python string functionstrcat'
>>> len(str)
28
>>> str.__len__()
28
五、python的字符串大小写转换
>>> str ="python String Function Strcat"
>>> str
'python String Function Strcat'
>>> str.upper() #全部转换为大写
'PYTHON STRING FUNCTION STRCAT'
>>> str.lower() #全部转换为小写
'python string function strcat'
>>> str.capitalize() #首字符转为大写其余为小写
'Python string function strcat'
>>>
>>> str = 'abc iop*ifew ndsfa.hfakshe=23ke//efha9023nksafn'
>>> str.title()
'Abc Iop*Ifew Ndsfa.Hfakshe=23Ke//Efha9023Nksafn'
>>>
六、count查看子字符串出现的次数
>>> str
'python String Function Strcat'
>>> str.count("python")
1
>>> str.count("n")
4
>>> str.count("n",0,10) #在[0:10]之间统计“n”出现的次数
1
>>>
七、字符串中的替换:
-
S.replace(oldstr, newstr, [count]):把S中的oldstr替换为newstr,count为替换次数,默认全部替换。这是替换的通用形式,还有一些函数进行特殊字符的替换
-
S.strip([chars]):把S中前后chars中有的字符全部去掉,可以理解为把S前后chars替换为None
-
S.lstrip([chars]):把S中前chars中有的字符全部去掉,可以理解为把S前后chars替换为None
-
S.rstrip([chars]):把S中后chars中有的字符全部去掉,可以理解为把S前后chars替换为None
-
S.expandtabs([tabsize]):把S中的tab字符替换为空格,每个tab替换为tabsize个空格,默认是8个
举例:
>>> str
'python String Function Strcat'
>>> str.replace("python","PYTHON")
'PYTHON String Function Strcat'
>>> str.replace("on","ON",1)
'pythON String Function Strcat'
>>> str.replace("on","ON",2)
'pythON String FunctiON Strcat'
>>> str="python string function python"
>>> str.strip("python")
' string function '
>>> str.lstrip("python")
' string function python'
>>> str.rstrip("python")
'python string function '
>>>
>>> str = 'abc def opq'
>>> str
'abc\tdef\t\topq'
>>> new_str=str.expandtabs()
>>> new_str
'abc def opq'
>>> new_str=str.expandtabs(1)
>>> new_str
'abc def opq'
八、字符串的分割和组合:
- S.split([sep, [maxsplit]]):以sep为分隔符,把S分成一个list。maxsplit表示分割的次数,取前maxsplit次。默认的分割符为空白字符
- S.rsplit([sep, [maxsplit]]):以sep为分隔符,把S分成一个list。maxsplit表示分割的次数,取后maxsplit次。默认的分割符为空白字符
- S.splitlines([keepends]):把S按照行分割符分为一个list,keepends是一个bool值,如果为真每行后而会保留行分割符。
- S.join(seq):把seq代表的序列──字符串序列,用S连接起来
字符串的mapping,这一功能包含两个函数:
-
String.maketrans(from, to):返回一个256个字符组成的翻译表,其中from中的字符被一一对应地转换成to,所以from和to必须是等长的。
-
S.translate(table[,deletechars]):使用上面的函数产后的翻译表,把S进行翻译,并把deletechars中有的字符删掉。需要注意的是,如果S为unicode字符串,那么就不支持 deletechars参数,可以使用把某个字符翻译为None的方式实现相同的功能。此外还可以使用codecs模块的功能来创建更加功能强大的翻译表。
举例:
>>> str
'python string function python'
>>> str.split("on")
['pyth', ' string functi', ' pyth', '']
>>> str.split()
['python', 'string', 'function', 'python']
>>> str.split("on",2) #只分割两次,取前面两个“on”作为分隔符
['pyth', ' string functi', ' python']
>>> str.rsplit("on")
['pyth', ' string functi', ' pyth', '']
>>> str.rsplit()
['python', 'string', 'function', 'python']
>>> str.rsplit("on",2) #只分割两次,取后面两个“on”作为分隔符
['python string functi', ' pyth', '']
>>> str="""aaaaaaaaaaaaaaaaa
... bbbbbbbbbbbbbbbbb
... ccccccccccccccccccccc"""
>>> str
'aaaaaaaaaaaaaaaaa\nbbbbbbbbbbbbbbbbb\nc\nccccccccccccccccccccc'
>>> str.splitlines() #以换行符为分割,成为列表。str.split('\n')
['aaaaaaaaaaaaaaaaa', 'bbbbbbbbbbbbbbbbb', 'ccccccccccccccccccccc']
>>> str.splitlines(0)
['aaaaaaaaaaaaaaaaa', 'bbbbbbbbbbbbbbbbb', 'ccccccccccccccccccccc']
>>> str.splitlines(1) #保留分隔符
['aaaaaaaaaaaaaaaaa\n', 'bbbbbbbbbbbbbbbbb\n', 'ccccccccccccccccccccc']
>>> list_1
['aaa', 'bbb', 'ccc']
>>> str="*"
>>> str.join(list_1)
'aaa*bbb*ccc'
>>> "".join(list_1)
'aaabbbccc'
九、其他的一些判断函数
-
s.isalnum():所有字符都是数字或者字母
-
s.isalpha():所有字符都是字母
-
s.isdigit():所有字符都是数字
-
s.islower():所有字符都是小写
-
s.isupper():所有字符都是大写
-
s.istitle():所有单词都是首字母大写,像标题
-
s.isspace():所有字符都是空白字符、\t、\n
-
s.upper():把所有字符中的小写字母转换成大写字母
-
s.lower():把所有字符中的大写字母转换成小写字母
-
s.capitalize():把第一个字母转化为大写字母,其余小写
-
s.title():把每个单词的第一个字母转化为大写,其余小写
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能