Python 字符串对象提供了大量方法用于字符串的查找、替换、判断、切分、连接和排版等操作,字符串属于不可变序列,涉及字符串“修改”方法都是返回修改后的新字符串,原始字符串不会做任何修改。
目录
1. 查找
2. 替换
3. 拆分
4. 连接
5. 转换
6. 删除
7. 判断字符串开始或结束
8. 判断字符串中字符
(1)find(str,beg=0,end=len(string))和 rfind():分别用来查找一个字符串在另一个字符串指定范围(默认整个字符串)中第一次和最后一次出现的位置,如果不存在,则返回-1。
(2)index(str,beg=0,end=len(string))和 rindex():方法和 find()、rfind一样,若不存在,则抛出异常。
(3)count(str,beg=0,end=len(string)):返回一个字符串在当前字符串中出现的次数。
>>> s="Java语言,C语言"
>>> s.find("语言") #从左边开始查找,返回:4
>>> s.rfind("语言") #从右边开始查找,返回:8
>>> s.find("a",2) #从索引号2开始查找,返回:3
>>> s.find("a",4,10) #从索引号4开始查找,到索引号10结束,返回:-1
>>> s.index('va') #从左边开始查找,返回:2
>>> s.index('语言C') #不存在,报错
>>> s.count("语言") #统计“语言”出现的次数,返回:2
(1)replace(old,new[,max]):把字符串中的old替换成new,如果max指定,则替换不超过max次。
>>> s="汉城是韩国的首都,由2000多万人生活在汉城。"
>>> s2=s.replace("汉城","首尔") #将s中的“汉城”全部替换成“首尔”
(2)maketrans(str1,str2):用来生成字符映射表,将str1的单个字符依次映射为str2中的单个字符,返回一个字典;而 translate(table,deletechars=" "):根据str给出的表(包含256个字符)转换string的字符,要过滤的字符放到deletechars参数中。
>>> map=' '.maketrans('我n!','你m?') #定义映射:我→你,n→m,!→?
>>> s="我正在学Python!"
>>> s.translate(map) #按定义好的映射表,全部进行替换
'你正在学Python?'
(1)split(str=" ",maxsplit=len(str)):以str为分隔符,将字符串从左往右拆分,返回一个列表;默认对整个字符串进行拆分。
(2)rsplit():按指定字符作为分隔符,把当前字符串从右往左分隔成多个字符串,并返回包含分隔结果的列表。
>>> '美国 中国 日本'.split(' ') #按空格从左往右拆分,返回列表
['美国','中国','日本']
>>> '美国 中国 日本'.split('。') #指定的分隔符“。”不存在,返回原字符串
['美国 中国 日本']
>>> "2020-11-22".rsplit('-') #按“-”从右往左拆分,返回列表
['2020','11','22']
split()、rsplit()方法还可以指定最大的拆分次数
>>> '美国 中国 日本'.split(maxsplit=1) #按默认的空格符进行拆分
['美国','中国 日本']
(3)partition():按指定字符串为分隔符,将原字符串从左往右拆分为三部分:分隔符前的字符串、分隔符字符串、分隔符后的字符串,如果指定的分隔符不在原字符串中,则返回原字符串和两个空字符串。
(4)rpartition():功能与partition()相似,只是从右往左拆分。
>>> '美国 中国 日本'.partition(' ') #按首个空格从左往右拆分,返回一个元组
('美国',' ',' 中国 日本')
s.join(x):按照指定的s字符,将变量x中的字符串连接起来,返回一个字符串,连接符s可以为空字符。
>>> x=list("三国演义")
>>> x
>>> '|'.join(x) #'|'为连接符,输出:三|国|演|义
(1)s.lower():将字符串s中的大写英文字母全部改为小写。
(2)s.upper():将字符串s中的小写英文字母全部改为大写。
(3)s.capitalize() :将字符串s中的第一个字符改为大写,其余不动。
(4)s.title():将字符串s中每一个单词的第一个字符改为大写,其余不动。
(5)s.swapcase():将字符串s中的英文字母,大小写互换,即大写改为小写,小写改为大写。
(1)s.strip([char]):从字符串s两边删除指定的字符char,默认为空格。
(2)s.lstrip([char]):从字符串s左边删除指定的字符char,默认为空格。
(3)s.rstrip([char]):从字符串s右边删除指定的字符char,默认为空格。
(1)s.startswith(str):判断字符串s是否以指定字符串str开始。
(2)s.endswith(str):判断字符串s是否以指定字符串str开始或结束。
(1)s.isalnum():判断字符串s中的字符,是否全为英文字母或数字。
(2)s.isalpha():判断字符串s中的字符,是否全为英文字母。
(3)s.isdigit():判断字符串s中的字符,是否全为数字。
(4)s.isspace():判断字符串s中的字符,是否全部为空格字符。
(5)s.isupper():判断字符串s中的字符,是否全为大写英文字母。
(6)s.islower():判断字符串s中的字符,是否全为小写英文字母。