Bri*_*man 8 python string methods
我遇到了我认为是一个错误,我正在寻找确认或我不明白这个方法是如何工作的.
这是我的基本输出:
(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)]'
Run Code Online (Sandbox Code Playgroud)
我的理解是,该示例中的最终'lstrip'应该返回'K',但事实并非如此.有谁知道为什么?
gtl*_*ert 10
该lstrip()
函数的行为与您的想法完全不同.从字符串左侧x.lstrip(argument)
删除任何字符,直到它到达不在的字符.argument
x
argument
因此'KEY_K'.lstrip('KEY_')
产生''
,因为最后一个字符K
,是KEY_
.
它在文档中是正确的:
lstrip(...)S.lstrip([chars]) - > string或unicode
返回字符串S的副本,删除前导空格.如果给出了chars而不是None,则删除chars中的字符.如果chars是unicode,则S将在剥离之前转换为unicode
'K'
是的'KEY_'
,这就是你的最后一个例子返回的原因''
.
请注意,'K'
如果前面有不在的字符,则不会被删除'KEY_'
:
>>> 'KEY_xK'.lstrip('KEY_')
'xK'
Run Code Online (Sandbox Code Playgroud)
lstrip的第二个参数是将要删除的字符集。如果需要删除子字符串,则可以使用:
if x.startswith('KEY_'):
x = x.replace('KEY_', '', 1)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3807 次 |
最近记录: |