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

最佳答案

.lstrip()删除字符集,而不是单词。所有字符prade,以任何顺序从pradeep的开头删除。最后两个字符ed仍然是该集合的一部分,也将被删除。如果使用.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


演示:

>>> def remove_start(inputstring, word_to_remove):
...     return inputstring[len(word_to_remove):] if inputstring.startswith(word_to_remove) else inputstring
...
>>> remove_start('pradeep', 'prade')
'ep'

关于python - 函数string.lstrip()在python中返回空白字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20843549/

10-12 12:28