字符串方法
Python提供了大量的方法用于字符串的查找、统计、连接、替换、分割、移除、转换等操作。下面罗列一些常用的字符串方法:
方法 | 说明 |
---|---|
find() | 用于在较长的字符串中查找子串。如果找到子串,返回子串所在位置的最左边索引,如果没有找到则返回-1。 |
count() | 统计字符串里某个子串出现的次数。该函数返回子串在字符串中出现的次数。 |
spilt() | 以指定字符为分隔符,从字符串左端开始将其分隔成多个字符串,并返回包含分隔结果的列表。 |
join() | 用于将序列中的元素以指定的字符连接,生成一个新的字符。 |
replace() | 用于将字符串中的旧字符串替换成新字符串 |
strip() | 用于删除字符串两端连续的空白字符或指定字符 |
lower()和upper() | lower()方法用于转换字符串中所有大写字符为小写,而upper()方法则用于转换字符串中所有小写字符为大写 |
isalnum() | 用于检测字符串是否由字母和数字,或者两种的一种组成。如果是就返回True,否则返回False |
tips:字符串对象提供的涉及字符串”修改“的方法都是返回修改后的新字符串,并不对原字符串作任何修改。
find()
find()用于在较长的字符串中查找子串。如果找到子串,返回子串所在位置的最左边索引,如果没有找到则返回-1。其语法格式如下:
str.find(sub[,start[,end]])
其中,str表示被查找字符串;sub表示查找的子串;start表示开始索引,省略时默认为0;end表示结束索引,省略时默认为字符串的长度。
new_str = "I like learning Python"
a = new_str.find("like")
b = new_str.find("like",5,15)
print(a)
print(b)
输出结果:
2
-1
提示:用于查找子串的另一个常用方法是index()方法,该方法与find()方法的用法基本一致,区别在于当查找的子串不存在时,抛出异常。
count()
count()用于统计字符串里某个子串出现的次数。该函数返回子串在字符串中出现的次数。其语法格式如下:
str.count(sub[,start[,end]])
其中,str表示被查找字符串;sub表示统计的子串;start表示开始索引,省略时默认为0;end表示结束索引,省略时默认为字符串的长度。
new_str = "This is a Python book!"
a = new_str.count('is') # 统计new_str中"is"的个数
b = new_str.count('is',1,6) # 设置开始和结束索引,统计"is"出现的次数(注意:这里不包含下标为6的字符)
print(a)
print(b)
输出结果:
2
1
split()
split()以指定字符为分隔符,从字符串左端开始将其分隔成多个字符串,并返回包含分隔结果的列表。其语法格式如下:
str.split([delimiter,num])
其中,str表示被分隔的字符串;delimiter表示分隔符,省略时默认为空字符,包括空格、换行(\n)、制表符(\t)等;num表示分割次数,省略时默认全部分割。
>>>new_str = "This is an example of cutting"
>>>new_str.split() # 以空字符为分隔符将字符串全部分割
['This','is','an','example','of','cutting']
>>>new_str.split('',3) # 以空字符为分隔符将字符串分隔3次
['This','is','an','example of cutting']
join()
join() 用于将序列中的元素以指定的字符连接,生成一个新的字符。其语法格式如下:
str.join(sequence)
其中,str表示连接符,可以为空;sequence表示要连接的元素序列。
>>>new_str = "This is a python book!"
>>>'-'.join(new_str) # 用‘-’连接new_str中的字符
'T-h-i-s- -i-s- -a- -python- -book-!'
replace()
replace() 用于将字符串中的旧字符串替换成新字符串。其语法格式如下:
str.replace(old,new[,max])
其中,str表示被查找字符串;old表示将被替换的子串;new表示新字符串,用于替换old子串;max是可选参数,表示替换不超过max次,省略时默认替换所有。
>>>new_str = "Monday Tuesday Wednesday"
>>>new_str.replace('day','DAY') # 将new_str中的day替换为DAY
'MonDAY TuesDAY WednesDAY'
>>>new_str.replace('day','DAY',2) # 将new_str中的day替换为DAY,限制为2次
'MonDAY TuesDAY Wednesday'
strip()
strip() 用于删除字符串两端连续的空白字符或指定字符。其语法格式如下:
str.strip([chars])
其中,str表示字符串;chars表示移除字符串两端指定的字符,省略时默认为空格。
>>>new_str = "110This is an example 0001"
>>>new_str.strip('1') # 移除new_str两侧的1
'0This is an example 000'
>>>new_str.strip('01') # 移除new_str两侧的0和1
'This is an example '
lower()和upper()
lower()方法用于转换字符串中所有大写字符为小写,而upper()方法则用于转换字符串中所有小写字符为大写。其语法格式如下:
str.lower()
str.upper()
其中,str表示字符串。
>>>new_str = "This is an EXAMPLE"
>>>new_str.lower()
'this is an example'
>>>new_str.upper()
'THIS IS AN EXAMPLE'
isalnum()
isalnum() 用于检测字符串是否由字母和数字,或者两种的一种组成。如果是就返回True,否则返回False。其语法格式如下:
str.isalnum()
其中,str表示要检测的字符串。
>>>new_str = "2018example"
>>>new_str.isalnum() # 判断new_str中是否只有数字或字母或字母和数字
True