strip如何在python中运行?

时间:2016-12-06 08:16:02

标签: python

我想知道rstrip和lstrip在python中是如何工作的。 比如说,如果我有一个字符串

>> a = 'thisthat'
>> a.rstrip('hat')
out : 'this'
>> a.lstrip('this')
out: 'at'
>> a.rstrip('cat')
out: 'thisth'

如何剥离一个单词?

理想情况下,输出应该是" thist"(对于第一种情况)和'(对于第二种情况)对吗?

或者它是否像正则表达式一样,匹配每个字符,以及它最终剥离的哪个字符(第三种情况)?

注意:我没有寻找替换我只是想知道当从字符串中剥离子字符串时strip是如何工作的。

3 个答案:

答案 0 :(得分:5)

来自doc

  

返回删除了前导和尾随字符的字符串副本。如果省略chars或None,则删除空格字符。如果给定而不是None,则字符必须是字符串;字符串中的字符将从调用此方法的字符串的两端剥离。

strip会获取 charcters 参数,并会尝试从两端删除这些字符

该参数被视为一组字符,而不是子字符串

lstrip rstrip 的工作方式完全相同,唯一的区别是其中一个只从左侧剥离,另一个从右侧剥离。

答案 1 :(得分:1)

a = 'thisthat'    
a.rstrip('hat')

等于

a = 'thisthat' 
to_strip = 'hat'
while a[-1] in to_strip:
    a = a[:-2]

答案 2 :(得分:-1)

lstriprstripstrip分别从字符串的左侧,右侧和两端删除字符。默认情况下,它们会删除空白字符(空格,制表符,换行符等)

>>> a = '  string with spaces  '
>>> a.strip()
'string with spaces'
>>> a.lstrip()
'string with spaces  '
>>> a.rstrip()
'  string with spaces'

您可以使用chars参数更改它删除的字符。

>>> a = '....string....'
>>> a.strip('.')
'string'

但是,基于您的问题,听起来您实际上正在寻找替换

>>> a = 'thisthat'
>>> a.replace('hat', '')
'thist'
>>> a.replace('this', '')
'that'