.lstrip()函数在某些字符串(尤其是带有下划线的字符串)上的效果并不像我预期的那样。如,
In [1]: a='abcd_efg_hijk_lmno_pqrs_tuvw_xyz'
In [2]: a.lstrip('abcd_efg')
Out[2]: 'hijk_lmno_pqrs_tuvw_xyz'
这里,'g'和'h'之间的'_'缺失。知道为什么会这样吗?
答案 0 :(得分:13)
.lstrip()
没有按照您的想法行事。它从字符串的左端删除任何提供的字符。第二个下划线与第一个下划线一样,因此它也被删除了。
"aaaaaaaabbbbbbbc".lstrip("ab") # "c"
答案 1 :(得分:7)
你想要什么:
b = 'abcd_efg'
if a.startswith(b):
a = a[len(b):]
正如str.lstrip
文档所述,
chars参数不是前缀;相反,它的所有值组合都被剥离了:
>>> 'www.example.com'.lstrip('cmowz.') 'example.com'
答案 2 :(得分:2)
做你想做的事:
>>> a = "foobar"
>>> sub = "foo"
>>> b = a[len(sub):]
>>> b
'bar'