Существуют ли ограничения на использование string.lstrip () в 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' 

Здесь «_» между «g» и «h» отсутствует. Любая идея, почему это происходит?

  • Python - понимание списка в этом случае эффективно?
  • Питоновский способ избежать «если x: вернуть x»
  • Что делает запятая в назначении python
  • Colon (:) в индексе списка Python
  • GAE self.request.cookies возвращает пустой dict
  • Найти новую папку в каталоге на Python
  • Python - API Facebook - нужен рабочий пример
  • получить код выхода для программы python
  • 3 Solutions collect form web for “Существуют ли ограничения на использование string.lstrip () в python?”

    .lstrip() не делает то, что, по вашему мнению, делает. Он удаляет любой из предоставленных символов из левого конца строки. Второй символ подчеркивания является таким же подчеркивающим, как и первый, поэтому он тоже удалился.

     "aaaaaaaabbbbbbbc".lstrip("ab") # "c" 

    Что ты хочешь:

     b = 'abcd_efg' if a.startswith(b): a = a[len(b):] 

    Как str.lstrip документации str.lstrip ,

    Аргумент chars не является префиксом; скорее, все комбинации его значений лишены:

     >>> 'www.example.com'.lstrip('cmowz.') 'example.com' 

    Чтобы делать то, что вы хотите:

     >>> a = "foobar" >>> sub = "foo" >>> b = a[len(sub):] >>> b 'bar' 
    Python - лучший язык программирования в мире.