了解python在字符串上的lstrip方法[重复]


问题内容

这个问题已经在这里有了答案

从字符串中删除前缀
(6个答案)

8个月前关闭。

我遇到了我认为是错误的错误,并且正在寻求确认,或者我不了解此方法的工作原理。

这是我的基本输出:

(Pdb) x = 'KEY_K'
(Pdb) x.lstrip('K')
'EY_K'
(Pdb) x.lstrip('KE')
'Y_K'
(Pdb) x.lstrip('KEY')
'_K'
(Pdb) x.lstrip('KEY_')
''
(Pdb) import sys
(Pdb) sys.version
'2.7.11 (default, Dec  5 2015, 14:44:47) \n[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.1.76)]'

我的理解是,该示例中的最后一个“ lstrip”应返回“ K”,但实际上没有。有人知道为什么吗?


问题答案:

在文档中是正确的:

lstrip(…)S.lstrip([字符])->字符串或Unicode

返回除去前导空格的字符串S的副本。如果给定 了chars而 不是None,则 改为删除chars中的字符
。如果chars是unicode,则在剥离之前S将被转换为unicode

'K''KEY_',这就是您的最后一个示例返回的原因''

请注意,'K'如果前面没有以下字符,则不会删除该字符'KEY_'

>>> 'KEY_xK'.lstrip('KEY_')
'xK'