函数string.lstrip()返回python中的空白字符串

函数string.lstrip()返回python中的空白字符串,python,string,Python,String,在python解释器中: 'pradeep'.lstrip('prade')提供的输出为“”。 我希望这会返回“ep”。 为什么这个假设是错误的?.lstrip()删除字符集,而不是一个单词。所有字符p、r、a、d和e,按任何顺序从pradeep开头删除。最后两个字符e和d仍然是该集合的一部分,并且也将被删除。如果使用.lstrip('drape')或.lstrip('adepr'),则会得到相同的结果 如果要从开头删除单词,请使用切片: example = 'pradeep' example[

在python解释器中: 'pradeep'.lstrip('prade')提供的输出为“”。 我希望这会返回“ep”。 为什么这个假设是错误的?

.lstrip()
删除字符集,而不是一个单词。所有字符
p
r
a
d
e
,按任何顺序从
pradeep
开头删除。最后两个字符
e
d
仍然是该集合的一部分,并且也将被删除。如果使用
.lstrip('drape')
.lstrip('adepr')
,则会得到相同的结果

如果要从开头删除单词,请使用切片:

example = 'pradeep'
example[5:] if example.startswith('prade') else example
或者,作为一种功能:

def remove_start(inputstring, word_to_remove):
    return inputstring[len(word_to_remove):] if inputstring.startswith(word_to_remove) else inputstring
演示:

.lstrip()
删除字符集,而不是一个单词。所有字符
p
r
a
d
e
,按任何顺序从
pradeep
开头删除。最后两个字符
e
d
仍然是该集合的一部分,并且也将被删除。如果使用
.lstrip('drape')
.lstrip('adepr')
,则会得到相同的结果

如果要从开头删除单词,请使用切片:

example = 'pradeep'
example[5:] if example.startswith('prade') else example
或者,作为一种功能:

def remove_start(inputstring, word_to_remove):
    return inputstring[len(word_to_remove):] if inputstring.startswith(word_to_remove) else inputstring
演示:


Martjin Pieters是对的,问题是.lstrip()从pradeep中删除了字符p、r、a、d、e

您可以使用下面的代码来执行您想要执行的操作:

a = 'pradeep'
b = a.split('prade')[1]

Martjin Pieters是对的,问题是.lstrip()从pradeep中删除了字符p、r、a、d、e

您可以使用下面的代码来执行您想要执行的操作:

a = 'pradeep'
b = a.split('prade')[1]

函数.lstrip不能满足您的方法。您可以使用Martijn Pieters给出的以下示例,或者我建议您使用替换函数:

 example = "pradeep"
 example.replace("prade","")

这将返回“ep”

函数.lstrip不能满足您的方法。您可以使用Martijn Pieters给出的以下示例,或者我建议您使用替换函数:

 example = "pradeep"
 example.replace("prade","")

这将返回“ep”

作为str修剪的一般功能:

def trim(s, start=None, end=None):
    ''' Trim `start` and/or `end` for str `s` '''
    if start is not None and s.startswith(start): s = s[len(start):]
    if end is not None and s.endswith(end): s = s[:-len(end)]
    return s

trim('pradeep', start='prade') # outputs 'ep'
trim('pradeep', start='pr', end='ep') # outputs 'ade'


作为str修剪的一般功能:

def trim(s, start=None, end=None):
    ''' Trim `start` and/or `end` for str `s` '''
    if start is not None and s.startswith(start): s = s[len(start):]
    if end is not None and s.endswith(end): s = s[:-len(end)]
    return s

trim('pradeep', start='prade') # outputs 'ep'
trim('pradeep', start='pr', end='ep') # outputs 'ade'


那么,如果我想从字符串中删除一个前导词,哪个函数合适呢?@pradeepillai--
line=“这是我可爱的字符串”
.join(line.strip().split()[1:])
@yourfavoriteprotein:为什么要使用
strip()
str.split()
已经没有参数了。您可以使用
.split(None,1)
来避免再次加入。@MartijnPieters,因为我不知道!谢谢:)那么,如果我想从字符串中删除一个前导词,哪个函数合适呢?@pradeepillai--
line=“这是我可爱的字符串”
.join(line.strip().split()[1:])
@yourfavoriteprotein:为什么要使用
strip()
str.split()
已经没有参数了。您可以使用
.split(None,1)
来避免再次加入。@MartijnPieters,因为我不知道!谢谢:)如果
prade
出现在字符串中的其他位置,或者多次出现,这将无法正常工作。没错,但我正在回答这个特定示例。一个更通用的代码可能是:A.replace('prade','')如果
prade
出现在字符串的其他地方,或者多次出现,这将无法正常工作。没错,但我是在回答那个特定的示例。更通用的代码可以是:A.replace('prade','')