python中字符串的常见操作,这一篇足矣
程序员文章站
2022-05-24 09:49:11
...
想要真正了解有关字符串的作用吗?那就继续往下面看下去吧
一个方法一个代码帮你了解的明明白白,look!look! look!
由于字符串是不可变数据类型,so自身没有增删改的操作,只会返回一个新的对象。切记,切记,切记!!!
字符编码encode,decode
a='我好帅呀'
byte=a.encode(encoding='utf8')#b'\xe6\x88\x91\xe5\xa5\xbd\xe5\xb8\x85\xe5\x91\x80'
b=byte.decode(encoding='utf8')#编码与解码的encoding必须一样
print(b)
字符串中字符的替换
str_1='hello,python'
str-2=str_1.replace('h','w',1)#将h->w,次数为1
print(str_1)#输出 hello,python
print(str_2)#输出 wello,python
字符串的大小写转换
str_1='HELLO,python'
str_2=str_1.upper()#HELLO,PYTHON ,全为大写
str_3=str_1.lower()#hello,python,全为小写
str_4=str_1.title()#Hello,Python,每个单词的首字母大写'xie
str_5=str_1.swapcase()#hello,PYTHON,大写改为小写,小写改为大写
str_6=str_1.capitalize()#Hello,python,只有第一个字母大写
print(str_2,str_3,str_4,str_5,str_6)
判断字符串由什么组成,所以返回 bool(true or false)
str.isdigit()#判断字符串是否全由数字组成
str.isalpha()#判断字符串是否由字母和中文组成
str.isalnum()#判断字符串是否是否由字母和数字组成
str.isspace()#判断字符串是否由 空白字符(\n,\t,\r, ) 组成
str.isidentifier()#判断字符串是否为标识符
str.isdecimal()#判断字符串是否数字全为十进制的
字符串的合并
a=['h','e','l','l','o']
str_1=''.join(a)#join函数的参数为列表或元组
print(str_1)#hello
字符串中的查找
str_1='hello,hello'
str_2='lo'
a=str_1.index(str_2)#从左开始查找,返回索引
b=str_1.rindex(str_2)#从右开始查找,返回索引
print(a,b)#3,9
str_1='hello,hello'
str_2='lo'
a=str_1.find(str_2)#从左开始查找,返回索引
b=str_1.rfind(str_2)#从右开始查找,返回索引
print(a,b)#3,9
那find与index的区别呢?就是如果str_2在str_1中没有找到的话,index(rindex)方法返回ValueError: substring not found,而find(rfind)返回-1
字符串切片
#切片左闭右开
str_1='bbjsdjbavhhbhbbjnnkmkj'
str_2=str_1[:3]#0,1,2
str_3=str_1[1:7]#1,2,3,4,5,6
str_4=str_1[1:]#从索引1到字符串结束
print(str_2)#bbj
print(str_3)#bjsdjb
print(str_4)#bjsdjbavhhbhbbjnnkmkj
去字符串头尾的空白字符
a=' sdsdjjj '
b=a.strip()#去除头尾空白字符
c=a.lstrip()#去除左边的空白字符
d=a.rstrip()#去除右边的空白字符
print(b)
print(c)
print(d)
分割存为 列表
str_1='hello,world,python'
str_2=str_1.split(',',1)#第一个参数为字符串中的字符,第二个参数为分割次数(默认为全分割
str_3=str_1.split('l')
print(str_1)#hello,world,python
print(str_2#['hello,world,python']
print(str_3)#['he', '', 'o,wor', 'd,python']
查找字符在字符串中出现的次数
str_1='hdijicjdsjssjdew'
con=str_1.count('j')
print(con)
字符串之间的比较(>,=>,<,<=,==,!=)这是比较值,is比较的是id,但都返回bool
a,b,d='adcd','abdc','adcd'
print(a==b)#false
print(a is d)#true
字符串的对齐方式
str_1='abcd'
a=str_1.center(8,'*')#第一个参数表示字符长度,第二参数表示填充字符(默认填充空格)
b=str_1.ljust(9,'@')#第一个参数表示字符长度,第二参数表示填充字符(默认填充空格)
c=str_1.rjust(10,'%')#第一个参数表示字符长度,第二参数表示填充字符(默认填充空格)
d=str_1.zfill(10)#参数表示字符长度,填充0
e=str_1.rjust(10)#参数表示字符长度,没有指示填充字符,则为填充空格
f=str_1.center(3,'*')#指定字符长度小于实际长度,则返回原字符串
print(a)
print(b)
print(c)
print(d)
print(e)
print(f)
最后我想问个问题
第一个问题
a=‘123’
b=a
a=‘456’
b=?
第二个问题
a=(‘a’,‘b’,[‘c’,‘d’])
b=(a)
a[2][0]=‘e’
b=?
第一个问题中a变了,但b没有变
第二个问题中a变了,但b也变了,这是为什么吗?
上一篇: IOC的底层原理
下一篇: Spring IOC底层原理