在python中使用string.lstrip()是否有限制?

7 python

可能重复:
这是Python 2.7中的错误吗?

.lstrip()函数在某些字符串上(特别是带有下划线的字符串)并不像我预期的那样完全正常工作.例如,

In [1]:  a='abcd_efg_hijk_lmno_pqrs_tuvw_xyz'   
In [2]: a.lstrip('abcd_efg')   
Out[2]: 'hijk_lmno_pqrs_tuvw_xyz'
Run Code Online (Sandbox Code Playgroud)

这里,'g'和'h'之间的'_'缺失.知道为什么会这样吗?

kin*_*all 13

.lstrip()不会做你认为它做的事情.它从字符串的左端删除任何提供的字符.第二个下划线与第一个下划线一样,因此它也被删除了.

"aaaaaaaabbbbbbbc".lstrip("ab")  # "c"
Run Code Online (Sandbox Code Playgroud)

  • 对于快速而肮脏的方式`"my_string"[len("my"):]` (4认同)

eph*_*ent 7

你想要什么:

b = 'abcd_efg'
if a.startswith(b):
    a = a[len(b):]
Run Code Online (Sandbox Code Playgroud)

正如str.lstrip文件所说,

chars参数不是前缀; 相反,它的所有值组合都被剥离:

>>> 'www.example.com'.lstrip('cmowz.')
'example.com'
Run Code Online (Sandbox Code Playgroud)