Python序列之字符串

因为字符串属于不可变序列,所以方法中对字符串的修改,都是靠返回一个新字符串来实现的,并没有对老字符串产生影响

1、寻找文本:在字符串中,从左开始寻找自己想要的文本

str1.find(string,[startindex],[endindex])      #可选参数为开始和结束的索引

查找成功返回所处索引,失败返回-1

同类方法:

str1.index()

查找成功返回索引,失败抛出错误

2、倒找文本:在字符串中,从右开始寻找自己想要的文本

str1.rfind()  #参数同上

查找成功返回所处索引,失败返回-1

同类方法:

str1.rindex()

查找成功返回索引,失败抛出错误

3、取部分文本

取文本左边

提供长度:str1[:ls]

提供字符串:str1[:str1.index(string)]

取文本右边

提供长度:str1[len(str1)-ls:]

提供字符串:str1[str1.rindex(string)+1:]

取文本中间

提供起始索引:str1[startindex:endindex]

提供起始字符串:str1[str1.index(starstring)+1:str1.rindex(endstring)]

4、连接成字符串:把列表连接成字符串

string.join(list) 

str1 = '+'  #此为连接符

list1 = ['1','2','3']  #注意,该列表的成员必须是string

打印结果:1+2+3

5、分割字符串到列表

string.split([fgstring],[fgcount])

默认无参是用空格进行分割

第二个参数是可选的分割次数

注:分割1次是生成2个成员,2次是3个

返回结果是列表

注:split方法与join互为逆运算

6、查找字符串并替换

str1.replace(x,y,[z])

查找到x,全部替换成y

参数z为可选参数,替换次数,为空的情况下默认全部替换

想同时替换多个值,有一个新的方法

str1.translate(table)  #参数是一个替换表

下面介绍替换表生成的方法

from string import maketrans

table1 = maketrans('a','a')  #这是一个包含256个字符的原始替换表

str1.translate(table1) #这样就可以替换了

注:如果需要同时替换多个,可以在生成替换表的时候修改

table1 = maketrans('ac','bk')  #a 替换 b ,c 替换成  k

7、空格处理

str1.strip([s])   #删首尾空,可以使用指定参数,删除首尾指定参数

str1.lstrip([s])  #删左首空,同上

str1.rstrip([s])  #删右首空,同上

注:如果需要删除中间的空格,则只能使用其他的方法

a、替换方法

str1.replace(' ','')  #替换中间所有空格

b、分割方法

''.join(str1.split())

c、正则方法

通过sub匹配替换

8、字母转换

常用字母转换

str1.lower()  转换成小写字母

str1.upper()  转换成大写字母

str1.swapcase()  大小写互换

str1.title()  转换为首字母大写,其他字母小写

对应的字母判断方法

str1.islower()  #判断小写

str1.isupper()  #判断大写

str1.istitle()  #判断单词首字母大写

判断字符串的开头和结尾

str1.startwith(string)  #判断是否以当前string开头

str1.endwith(string)  #判断是否以当前string结尾

返回值:逻辑型

9、字符串格式化

单个参数格式化

print '%s是一个好人'%'张三'

两个参数

print '%s是一个%s'%('李四','坏人')

注:传递多个参数时需要使用到元组,且必须加括号

常用格式化字符串

%s 格式化字符串,可以提供字符串和int

%d 格式化字符串,可以提供数值类型,非int会被强转成int

%x 格式化字符串,可以提供数值类型,非int会被转成int,结果强转成16进制

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/6fb9c8bca789e18283162d9f674e046f.html