python在长字符串中寻找重复子串_常用的21个内置字符串处理方法

10d1ee1f0fa9c45367448c07b69f46e7.png

《Python语言程序设计基础》:

在Python解析器内部,所有数据类型都采用面向对象方式实现,封装成一个类。

字符串也是一个类,它具有类似<a>.<b>()形式的字符串处理函数。

在面向对象中,这类函数被称为“方法”。

无特别说明,str是将要进行处理的目标字符串。全部方法操作后返回副本,不赋值。

1、大小写转换

str.lower() #返回字符串str的小写副本
str.upper() #返回字符串str的大写副本
str.capitalize() #把字符串第一个字母大写,其余小写
str.swapcase() #字符串大写和小写字母相互转换
>>> str = "Winter Is Coming!"
>>> str.lower() #返回字符串str的小写副本
'winter is coming!'
>>> str.upper() #返回字符串str的大写副本
'WINTER IS COMING!'
>>> str.capitalize() #把字符串第一个字母大写,其余小写
'Winter is coming!'
>>> str.swapcase() #字符串大写和小写字母相互转换
'wINTER iS cOMING!'

2、判断是否大小写

str.islower() #当str所有字符都是小写时,返回True,否则返回False
str.isupper() #当str所有字符都是大写时,返回True,否则返回False
>>> str = "Winter Is Coming!"
>>> str.islower() #当str所有字符都是小写时,返回True,否则返回False
False
>>> str.isupper() #当str所有字符都是大写时,返回True,否则返回False
False

3、判断数字、空格

str.isnumeric() #当str所有字符都是数字时,返回True,否则返回False
str.isspace() #当str所有字符都是空格时,返回True,否则返回False
>>> str1 = "15013095593"
>>> str1.isnumeric() #当str所有字符都是数字时,返回True,否则返回False
True
>>> str2 = "     "
>>> str2.isspace() #当str所有字符都是空格时,返回True,否则返回False
True

4、去掉字符串空格

str.strip() #去除str头尾空格
str.lstrip() #去除str头部left的空格
str.rstrip() #去除str尾部right的空格
str.replace(' ','') #替换str中全部的空格
>>> str3 = "   Winter   Is   Coming!   "
>>> str3.strip() #去除str头尾空格
'Winter   Is   Coming!'
>>> str3.lstrip() #去除str头部left的空格
'Winter   Is   Coming!   '
>>> str3.rstrip() #去除str尾部right的空格
'   Winter   Is   Coming!'
>>> str3.replace(' ','') #替换str中全部的空格
'WinterIsComing!'

注意,以上多个函数方法括号内并无参数,str.replace()除外。

且str.replace()鹤立鸡群,与众不同!

5、字符串替换处理

str.replace(old,new[,count]) #所有old子串被替换成new子串,count指替换次数,[]为可选
>>> 

6、字符串检索

str.find(sub[,start[,end]]) #在指定范围内,按顺序从左到右,检索sub子串第一次出现位置
str.rfind(sub[,start[,end]]) #在指定范围内,按顺序从右到左,检索sub子串第一次出现位置

sub子串为检索目标,start和end指定检索范围,可选,缺省时默认str[:]。检索不到目标字符串时返回-1。

>>> str = "Winter Is Coming!"
>>> str.find("n") #在指定范围内,按顺序从右到左,检索sub子串第一次出现位置
2
>>> str.rfind("n") #在指定范围内,按顺序从右到左,检索sub子串第一次出现位置
14
>>> str.find("a") 
-1
>>> str.rfind("a")
-1

注意,无论是从左到右检索,还是从右到左检索,返回的序号都是正向序号。str.index和str.rindex用法与上述大致相同。

7、字符串切割

str.split()则不再赘述。

8、计算子串出现次数

str.count(sub[,start[,end]]) #返回str[start:end]中子串出现的次数
>>> str = "Winter Is Coming!"
>>> str.count('n') #返回str[start:end]中子串出现的次数
2

9、连接字符串

str.join(iterable) #返回一个新字符串,由一个序列对象元素组成,用str进行连接
>>> a='---'#间隔符号1
>>> b='   '#间隔符号2
>>> str = "Winter Is Coming!"
>>> ls = str.split()#生成列表ls
>>> print(a.join(ls))
Winter---Is---Coming!
>>> print(b.join(ls))
Winter   Is   Coming!

10、数字型字符串格式化

str.zfill(width)#返回width长度的字符子串,长度不够则用0填充,主要用于数字型字符串
>>> str1 = "15013095593"
>>> str2 = "-15013095593"
>>> str1.zfill(20)
'00000000015013095593'
>>> str2.zfill(20)
'-0000000015013095593'

11、匹配头尾子串

str.startswith(prefix[,start[,end]])#str[start:end]以 prefix 开始返回True,否则返回False
str.endswith(suffix[,start[,end]])#str[start:end]以 suffix 结尾返回True,否则返回False
>>> str = "Winter Is Coming!"
>>> str.startswith('W')
True
>>> str.endswith("!")
True

THE END!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值