字符串函数详解
find函数:默认是从前往后找,找到第一个字串(sub),获取其位置。
如果找不到,返回-1.
test = 'alexalex'
v = test.find('ex',5,8)
print (v)
输出结果:6
默认格式为:左闭右开,即[开始,结束)
format函数:格式化,将字符串中的占位符替换为指定的值。
test = 'i am {name} ,age {a} '
print (test)
v = test.format(name='alex',a=19)
print(v)
输出结果:i am {name} ,age {a}
i am alex ,age 19
test = 'i am {0} ,age {0} '
print (test)
v = test.format('alex',19)
print(v)
输出结果:i am {0} ,age {0}
i am alex ,age alex
test = 'i am {0} ,age {1}'
print (test)
v = test.format('alex',19)
print(v)
输出结果:i am {0} ,age {1}
i am alex ,age 19
format_map:一对一对地出现
传入的值:类似这种 {‘name’:‘alex’,‘a’:10}
test = 'i am {name} ,age {a}'
v = test.format(name ='alex',a = 10)
v1= test.format_map({'name':'alex','a':10})
print(v)
print(v1)
输出结果:i am alex ,age 10
i am alex ,age 10
index函数:与find函数一样,查找字串,但是如果找不到,系统直接报错。
expandtabs函数:进行断句,以参数x个为一组进行断句,如果出现 \t ,不够x个,补空格到x个,没有发现 \t,不用补空格。(类似填表)
def expandtabs(self, tabsize=None):
将tab转换成空格,默认一个tab转换成8个空格
test='ababc\ta\taa'
v =test.expandtabs(6)
print(v,len(v))
输出结果:ababc a aa 14
test ='username\t email\tpassword\n王强\t1111@qq.com\t123456\n王强\t1111@qq.com\t123456\n王强\t1111@qq.com\t123456\n'
v =test.expandtabs(15)
print(v)
运行结果:
username email password
王强 1111@qq.com 123456
王强 1111@qq.com 123456
王强 1111@qq.com 123456
isalnum函数:判断字符串中是否只包含子母和数字。
test = '123_+=1'
v = test.isalnum()
print(v)
输出结果为:False
test = '123abc123'
v = test.isalnum()
print(v)
输出结果为:True
isalpha函数:判断字符串中是否只包含字符或者汉字。
test = '王强'
v = test.isalpha()
print(v)
输出结果:True
test = 'alex'
v = test.isalpha()
print(v)
输出结果为:True
isdigit函数:判断字符串只包含数字,但对于特殊的数字也能判断。
isdecimal函数:不能判断特殊的数字,十进制的数字可以判断。
isnumeric函数:包括中文的数字,也可以判断
test = '二'
v1 = test.isdigit()
v2 = test.isdecimal()
v3 = test.isnumeric()
print(v1,v2,v3)
输出结果:False False True
swapcase函数:将大写转为小写,小写转为大写。
test = 'AlEX'
v = test.swapcase()
print(v)
输出结果:aLex
isidentifier函数:判断是否为合法的标识符。
test = '1a'
v = test.isidentifier()
print(v)
输出结果:False
istitle函数:判断是不是标题,即字符串中的所有首字母是否都大写
title函数:将字符串中的首字母都大写,变成标题形式。
t = 'l love acm'
v =t.title()
v1=v.istitle()
print(v)
print(v1)
输出结果:
L Love Acm
True
isprintable函数:如果字符串中存在转义字符,比如\n,\t之类的,则返回False。
isspace函数:判断字符串中是否全是空格,如果是则返回True,不然返回False。
join函数:将字符串中的每一个元素按照指定的分隔符来进行拼接。
t = '我吃西红柿'
test = '❤️'
v=test.join(t)
print(v)
输出结果:我❤️吃❤️西❤️红❤️柿
也可以直接
t = '我吃西红柿'
v='❤️'.join(t)
print(v)
输出结果:我❤️吃❤️西❤️红❤️柿
islower函数:判断是否都小写
isupper函数:判断是否都大写
lower函数:全部转为小写
upper函数:全部转为大写
t = 'Alex'
v1 = t.islower()
v2 =t.lower()
print(v1,v2)
输出结果:False alex
maketrans函数和translate函数:将字符串s的所有元素分别替换成字符串t中的所有元素。
t = '1234567'
t1 = '你是风儿我是杀'
v ='1a2b3c4d5e6f7g'
v1=str.maketrans(t,t1)
new_v =v.translate(v1)
print(new_v)
输出结果:你a是b风c儿d我e是f杀g
将1替换成你,2替换成是,3替换成风 ...
replace函数:替换函数
test ='alexalex'
v = test.replace('ex','aaa',1)
print(v)
输出结果:alaaaalex
1表示将第一个ex替换成aaa
lstrip函数:截掉 string 左边的空格(默认),可以指定字符串,字符串可以是一个字符,或者多个字符,匹配时不是按照整个字符串匹配的,而是一个个匹配的。
rstrip函数:默认取出右边空白
strip函数:
也可以移除换行\n,\t,还可以移除指定字串(有限最多匹配)
t = ' 12ab'
v = t.lstrip()
print(v)
输出结果为:12ab
t = '12ab '
v = t.rstrip()
print(v)
输出结果为:12ab
str1:' iam string '
str1.lstrip():'iam string '
str2:'@@@@@iamstring@@@@@'
str2.lstrip('@'):'iamstring@@@@@'
str2.lstrip('@@'):'iamstring@@@@@'
str2.lstrip('@@@@@@'):'iamstring@@@@@'
str2.lstrip('@i'):'amstring@@@@@'
str2.lstrip('@a'):'iamstring@@@@@'
正则表达式:自己决定是否要分割元素
parttition函数:分割,最多分割成三份
rpartition函数:从右往左分割
t = "alexabcxak"
v = t.partition('x')
print(v)
输出结果:
('ale', 'x', 'abcxak')
split函数:可指定分割的个数,但是不包含分割的元素
rsplit函数:从右往左
t = "alexabcxak"
v = t.split('x')
print(v)
输出结果:['ale', 'abc', 'ak']
t = "alexabcxak"
v = t.split('x',1)
print(v)
输出结果:['ale', 'abcxak']
确定分割成两份
splitlines函数:只能根据换行符来分割,传的参数(True or False)来决定是否保留换行
t = "alex\nabcx\nak"
v = t.splitlines(True)
print(v)
输出结果:['alex\n', 'abcx\n', 'ak']
t = "alex\nabcx\nak"
v = t.splitlines(False)
print(v)
输出结果:['alex', 'abcx', 'ak']