python字符串操作⽅法详解
前⾔
本⽂的⽂字及图⽚来源于⽹络,仅供学习、交流使⽤,不具有任何商业⽤途,如有问题请及时以作处理。
PS:如有需要Python学习资料的⼩伙伴可以加点击下⽅链接⾃⾏获取
字符串序列⽤于表⽰和存储⽂本,python中字符串是不可变对象。字符串是⼀个有序的字符的集合,⽤于存储和表⽰基本的⽂本信息,⼀对单,双或三引号中间包含的内容称之为字符串。其中三引号可以由多⾏组成,编写多⾏⽂本的快捷语法,常⽤⽂档字符串,在⽂件的特定地点,被当做注释。便捷的多⾏注释。
Python实际三类字符串:
  1.通常意义字符串(str)
  2.原始字符串,以⼤写R 或 ⼩写r开始,r'',不对特殊字符进⾏转义
  3.Unicode字符串,u'' basestring⼦类
  python中字符串⽀持索引、切⽚操作。
根据python3.x的字符串源码⽂件可见,总共44个⽅法,查列出如下:
⽅法描述
把字符串的第⼀个字符⼤写
返回⼀个原字符串居中,并使⽤空格填充⾄长度 width 的新字符串
返回 str 在 string ⾥⾯出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数
以 encoding 指定的编码格式解码 string,如果出错默认报⼀个 ValueError 的 异 常 , 除 ⾮ errors 指 定 的
是 'ignore' 或 者'replace'
以 encoding 指定的编码格式编码 string,如果出错默认报⼀个ValueError 的异常,除⾮ errors 指定的
是'ignore'或者'replace'
检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回
True,否则返回 False.
把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8。
检测 str 是否包含在 string 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始
的索引值,否则返回-1
跟find()⽅法⼀样,只不过如果str不在 string中会报⼀个异常.
如果 string ⾄少有⼀个字符并且所有字符都是字母或数字则返
回 True,否则返回 False
如果 string ⾄少有⼀个字符并且所有字符都是字母则返回 True,
否则返回 False
如果 string 只包含⼗进制数字则返回 True 否则返回 False.
如果 string 只包含数字则返回 True 否则返回 False.
如果 string 中包含⾄少⼀个区分⼤⼩写的字符,并且所有这些(区分⼤⼩写的)字符都是⼩写,则返回 True,否
则返回 False
如果 string 中只包含数字字符,则返回 True,否则返回 False
如果 string 中只包含空格,则返回 True,否则返回 False.
如果 string 是标题化的(见 title())则返回 True,否则返回 False
如果 string 中包含⾄少⼀个区分⼤⼩写的字符,并且所有这些(区分⼤⼩写的)字符都是⼤写,则返回 True,否
则返回 False
以 string 作为分隔符,将 seq 中所有的元素(的字符串表⽰)合并为⼀个新的字符串
返回⼀个原字符串左对齐,并使⽤空格填充⾄长度 width 的新字符串
转换 string 中所有⼤写字符为⼩写.
截掉 string 左边的空格
maketrans() ⽅法⽤于创建字符映射的转换表,对于接受两个参数的最简单的调⽤⽅式,第⼀个参数是字符串,
表⽰需要转换的字符,第⼆个参数也是字符串表⽰转换的⽬标。
返回字符串 str 中最⼤的字母。
返回字符串 str 中最⼩的字母。
有点像 find()和 split()的结合体,从 str 出现的第⼀个位置起,把 字 符 串 string 分 成 ⼀ 个 3 元 素 的 元 组
(string_pre_str,str,string_post_str),如果 string 中不包含str 则 string_pre_str == string.
把 string 中的 str1 替换成 str2,如果 num 指定,则替换不超过 num 次.
类似于 find()函数,不过是从右边开始查.
类似于 index(),不过是从右边开始.
返回⼀个原字符串右对齐,并使⽤空格填充⾄长度 width 的新字符串
string.rpartition(str)类似于 partition()函数,不过是从右边开始查.
删除 string 字符串末尾的空格.
以 str 为分隔符切⽚ string,如果 num有指定值,则仅分隔 num 个⼦字符串
按照⾏分隔,返回⼀个包含各⾏作为元素的列表,如果 num 指定则仅切⽚ num 个⾏.
检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检
查.
在 string 上执⾏ lstrip()和 rstrip()
翻转 string 中的⼤⼩写
返回"标题化"的 string,就是说所有单词都是以⼤写开始,其余字母均为⼩写(见 istitle())
根据 str 给出的表(包含 256 个字符)转换 string 的字符,
要过滤掉的字符放到 del 参数中
转换 string 中的⼩写字母为⼤写
返回长度为 width 的字符串,原字符串 string 右对齐,前⾯填充0
isdecimal()⽅法检查字符串是否只包含⼗进制字符。这种⽅法只存在于unicode对象。
总结上⾯的⽤法,对其分个类,我们可以把字符串操作分为字符串的替换、删除、截取、复制、连接、⽐较、查、分割等但是,⾸先得判断这个对象是不是字符串,⽅法如下:
如何判断⼀个对象是不是字符串
python中字符串有两重,⼀种是str,⼀种是unicode。那如何判断⼀个对象是不是字符串呢?应该使⽤isinstance(s,basestring),⽽不
是isinstance(s,str)。看下⾯例⼦
>>>a = 'hi'
>>>isinstance(a,str)
True
>>>b = u'Hi'
>>>isinstance(b,str)
False
>>>isinstance(b,basestring)
True
>>>isinstance(b,unicode)
True
>>>isinstance(a,unicode)
False
要正确判读⼀个对象是不是字符串,要有basestring,因为basestring是str和unicode的基类,包含了普通字符串和unicode类型。
如何去掉字符串的双引号
a = '"string"'
print(a,type(a))
b = eval(a)
print(b,type(b))
结果:
"string" <class 'str'>
string <class 'str'>
下⾯讲str对象的基本⽤法
字符串的基本⽤法可以分以下五类,即性质判定、查替换、分切与连接、变形、填空与删减。
(a)性质判定
性质判定有以下⼏个⽅法。
isalnum():是否全是字母和数字,并⾄少有⼀个字符
isalpha():是否全是字母,并⾄少有⼀个字符
isdigit():是否全是数字,并⾄少有⼀个字符
islower():字符串中字母是否全是⼩写
isupper():字符串中字母是否全是⼩写
isspace():是否全是空⽩字符,并⾄少有⼀个字符isalpha 函数
istitle():判断字符串是否每个单词都有且只有第⼀个字母是⼤写
startswith(prefix[,start[,end]]):⽤于检查字符串是否是以指定⼦字符串开头,如果是则返回 True,否则返回 False。如果参数 start 和 end 指定值,则在指定范围内检endswith(suffix[,start[,end]]):⽤于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回True,否则返回False。可选参数"start"与"end"为检索字符串的开始与结
is*()这些都⽐较简单,从字母的字⾯上就可以理解,*with()函数可以接受start和end参数,如果善加利⽤可以优化性能。另外,从python 2.5版本起,*with()函数族的第(b)查与替换

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。