python 每日小练0016

本文详细介绍Python中处理字符串的多种方法,包括使用strip、lstrip、rstrip去除头尾字符,replace方法替换中间字符,以及translate方法进行复杂替换。适用于不同场景的需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题

你想去掉文本字符串开头,结尾或者中间不想要的字符,比如空白。

解决方案

对于简单的文本替换,我们可以使用 [lr]strip和 replace

strip() 方法能用于删除开始或结尾的字符。 lstrip() 和 rstrip() 分别从左和从右执行删除操作。 默认情况下,这些方法会去除空白字符,但是你也可以指定其他字符集合。

Python中有三个去除头尾字符、空白符的函数,它们依次为:
strip: 用来去除头尾字符、空白符(包括\n、\r、\t、' ',即:换行、回车、制表符、空格)
lstrip:用来去除开头字符、空白符(包括\n、\r、\t、' ',即:换行、回车、制表符、空格)
rstrip:用来去除结尾字符、空白符(包括\n、\r、\t、' ',即:换行、回车、制表符、空格)

注意:这些函数都只会删除头和尾的字符,中间的不会删除。

 'mississipip'.lstrip('ms')    # 删除开头的m和s
 'ississipip'                  #输出
                  
 'mississipip'.lstrip('mia')   #删除开头的m和i ,a
 'ssissipip'

 'mississipip'.lstrip('mias')  #删除开头的m和i ,a,s
 'pip'

 'mississipip'.strip('mias')   #删除的m和i ,a 
 'pip'

 'mississipipssaa'.strip('mias') #删除开头和结尾的m i a s 
 'pip'

 '  mississipipa  '.strip()     #删除空格符
 'mississipipa'

 '  mississipipa  '.lstrip()    #删除开头的空格符
 'mississipipa  '

 '  mississipipa  '.rstrip()    #删除结尾的空格符
 '  mississipipa'
 

如果需要替换或者删除中间的某些字符,可以使用 replace方法

 'mississipipas'.replace('p','l') #l替换p
 'mississililas'

 'mississipipas'.replace('p','')  
 'mississiias'

么对于复杂的替换或者删除操作,比如需要一次替换多个字符,可以使用 str.translate(table)方法

这个方法需要传入的 table是一个实现了 __getitem__()方法的对象(例如dict),其中key必须是unicode编码,value是unicode编码或者字符或者 None

语法

translate()方法语法:

str.translate(table[, deletechars]);

参数

  • table -- 翻译表,翻译表是通过maketrans方法转换而来。
  • deletechars -- 字符串中要过滤的字符列表。

返回值

返回翻译后的字符串。

实例

以下实例展示了 translate()函数的使用方法:

 

intab = "aeiou" 
outtab = "12345" 
trantab = maketrans(intab, outtab) 
str = "this is string example....wow!!!"
print  (str.translate(trantab))

 

以上实例输出结果如下:

th3s 3s str3ng 2x1mpl2....w4w!!!

以上实例去除字符串中的 'x' 和 'm' 字符:

 

intab = "aeiou" 
outtab = "12345"
 trantab = maketrans(intab, outtab) 
str = "this is string example....wow!!!"
 print (str.translate(trantab, 'xm'))

以上实例输出结果:

th3s 3s str3ng 21pl2....w4w!!!

总结:

讨论

字符串替换和删除的方法有很多,一般来说为了追求效率,我们应该使用最简单的那个方法

比如需要替换或删除头部或者尾部的时候考虑 strip、 lstrip、 rstrip

还需要替换或删除中间元素时候再考虑 replace

如果遇到更复杂的替换删除操作,或者使用上述方法来做非常麻烦的时候,可以考虑 translate方法

当然,当涉及到一些模式的时候,可以使用考虑 re模块来处理字符串

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值