This question already has answers here:
Removing a prefix from a string

(6个答案)


去年关闭。




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

这是我的基本输出:
(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”,但事实并非如此。有人知道为什么吗?

最佳答案

在文档中是正确的:


'K''KEY_'中,这就是为什么上一个示例返回''的原因。

请注意,如果'K'前面带有不在'KEY_'中的字符,则不会将其删除:

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

09-25 18:13