Python字符串处理(详解)

  • 时间:
  • 浏览:
  • 来源:互联网

(一)定义字符串数据类型

单引号('')可以包含双引号

双引号("")可以包含单引号

三单引号(''' '''')可以包含单引号和双引号

三双引号(""" """)可以包含单引号和双引号,可以跨行。

(二)字符串的索引
在这里插入图片描述

>>> s="你吃饭了吗"
>>> s[0]
'你'
>>> s[-1]//反向访问‘吗’
'吗'
>>> s[4]//正向访问‘吗’
'吗'
>>>

(三)字符串的切片

s[头下标:尾下标]
>>> s="你吃饭了吗"
>>> s[0:4]#只能取到正向序号4的前一个,0-3包含在内不包含正向序号为4的字符
'你吃饭了'
>>> s[2:-1]#不能取到最后一位字符
'饭了'
>>> s[:5]#头下标缺省,从第一个字符开始取
'你吃饭了吗'
>>> s[2:]#尾下标缺省,一直取到最后一个字符
'饭了吗'
>>> s[:]#头下标和尾下标都缺省,取全部字符
'你吃饭了吗'
>>> s[-1]#单取最后一个字符
'吗'

进阶版

s[头下标:尾下标:步长]
>>> s="你吃饭了吗"
>>> s[0:4:1]#步长大于0,1-1=0,正向取,从0取到3,序号尾为4的取不到
'你吃饭了'
>>> s[0:4:2]#步长大于0且2-1=1,所以要隔一个取,取到3
'你饭'
>>> s[4:0:-1]#步长小于0,反向取,从4-1,0求取不到
'吗了饭吃'
>>> s[0:4:-1]#反向取,0-4反向取不了,输出为空
''
>>> s[::-1]#反向整串取
'吗了饭吃你'
>>> s[4::-1]#反向取,4-0
'吗了饭吃你'
>>> s[::-2]#反向取,隔一个字符整串取
'你吗'
>>>

(四)字符串处理与操作
在这里插入图片描述
在这里插入图片描述
内置字符串处理方法

(1)字符串查找类方法

find(),rfind()方法用来查找一个字符子在另一个字符串指定范围内中首次和最后
一次出现的位置,如果不存在返回-1
index(),rindex()方法与find(),rfind()方法作用相同,只是如果不存在则抛出异常
>>> s="bird,fish,dog"
>>> s.find('fish')
5
>>> s.find('b')
0
>>> s.find('i')
1
>>> s.rfind('i')
6
count()方法用来返回一个字符串在另一个字符串中出现的次数,如果不村子则返回0
>>> s="bird,fish,dog"
>>> s.count('bird')
1
>>> s.count('i')
2
>>> s.count('cat')#不存在返回0
0
>>>

(2)字符串分隔类方法

split(),rsplit()方用来指定字符为分隔符,分别从原来字符串左端和右端开始将
其分隔成多个字符串,并返回包含分隔结果的列表(不可以对中文分割,中文分割要
用到第三方库
>>> s="bird,fish,dog"
>>> s.split(',')#按','分割
['bird', 'fish', 'dog']
>>> s.split()#默认按空白符号分割字符串
['bird,fish,dog']
>>> s.rsplit()
['bird,fish,dog']
>>> 
partition(),rpartition()方法用来以指定字符串将原字符串分隔成3个部分
如果指定的字符串不在原字符串中,则返回原字符串和两个空字符串。如果原字符
串中有多个指定字符串,partition()从左向右分,rpartition()从右向左分
>>> s="bird,fish,dog,fish,cat"
>>> s.rpartition('fish')
('bird,fish,dog,', 'fish', ',cat')#从右向左
>>> s.partition('fish')#从左向右
('bird,', 'fish', ',dog,fish,cat')
>>> s.partition('tiger')
('bird,fish,dog,fish,cat', '', '')#分隔符不存在
>>>

(3)字符串连接方法

join()方法用来将列表中多个字符串进行连接,并在相临两个字符串之间插入
指定字符,返回一个新字符串
>>> s={'bird','fish','cat'}#s为列表
>>> '-'.join(s)#用‘-’作连接符
'cat-fish-bird'
>>>

(4)字符串大小写转换方法

lower()将字符串转换为小写字符,upper()将字符串转换为大写字符,capitalize()
将字符串的首字母转换成大写字母,title()将字符串中每个单词的首字母转换成大写
swapcase()将字符串的字符大小写互换(这些方法都是生成新的字符串,不对原字符
串进行修改)
>>> s="I have a big eyes"
>>> s.lower()
'i have a big eyes'
>>> s.upper()
'I HAVE A BIG EYES'
>>> s.capitalize()
'I have a big eyes'
>>> s.title()
'I Have A Big Eyes'
>>> s.swapcase()
'i HAVE A BIG EYES'
>>>

(5)字符串替换方法

replace()用来替换字符串中指定字符或者子字符串,每次只能替换一个字符或者子字符串
返回一个新的字符串
>>> s="你是我的小呀小苹果儿"
>>> s.replace("小","small")
'你是我的small呀small苹果儿'
>>>

(6)删除字符串两端、右端或左端连续空白字符和指定字符

strip()删除两端,srstirp()删除右端,slstrip()删除左端
>>> s=" abc "
>>> s.strip()#删除两端的空白符
'abc'
>>> s.rstrip()#删除右端的空白符
' abc'
>>> s.lstrip()#删除左端的空白符
'abc '
>>> s="==you=="
>>> s.strip('=')#删除指定字符
'you'
>>> s.rstrip('=')
'==you'
>>> s.lstrip('=')
'you=='
>>>

(7)判断字符串是否以指定字符开始结结束

>>> s="hello,world"
>>> s.startswith("hello")#判断字符串是否以“hello”开始
True
>>> s.endswith("world")
True
>>>

(8)判断字符串类型方法​

>>> s="year"
>>> s.islower()#判断字符串是否全为小写
True
>>> s.isupper()#判断字符串是否全为小写
False
>>> s.isdigit()#判断是否全为数字
False
>>> s="我们"
>>> s.isalnum()#判断是否为数字或字母或汉字
True
>>> s.isalpha()#判断是否为全字母和汉字
True
>>> s="67"
>>> s.isalpha()
False
>>>

(9)字符串排版方法

center(),ljust(),rjust(),zfill()
>>> s="Hello Word"
>>> s.center(30,'=')#字符串居中对齐,输出宽度为30,不足的补"="填充
'==========Hello Word=========='
>>> s.ljust(20,'*')#居左对齐,输出宽度为20,不足补"*"填充
'Hello Word**********'
>>> s.ljust(20,'*')#居右对齐,输出宽度为20,不足补"*"填充
'Hello Word**********'
>>> s.zfill(20)#输出宽度为20,在字符左侧以"0"填充
'0000000000Hello Word'
>>>

format()格式化方法

>>> name1="zang"
>>> name2="san"
>>> "一个人叫{},另一个人叫{}".format(name1,name2)
'一个人叫zang,另一个人叫san'
>>> "一个人叫{1},另一个人叫{0}".format(name1,name2)#name1默认为0,name2默认为1
'一个人叫san,另一个人叫zang'
精度问题
>>> s=890
>>> "保留两位小数{:.2f}".format(s)
'保留两位小数890.00'
>>> "保留四位小数{:.4f}".format(s)
'保留四位小数890.0000'
>>> 
格式
>>> "{:=^30.4f}".format(s)#宽度30,居中对齐,不足以"="填充,保留4位小数
'===========890.0000==========='
>>> "{:x>5d}".format(s)#宽度位5,向右对齐,不足以"x"填充
'xx890'
>>>

本文链接http://www.dzjqx.cn/news/show-617430.html