Расщепление при первом появлении - PullRequest
252 голосов
/ 01 августа 2011

Как лучше всего разбить строку при первом появлении разделителя?

Например:

"123mango abcd mango kiwi peach"

разделение на первое mango, чтобы получить:

"abcd mango kiwi peach"

Ответы [ 3 ]

420 голосов
/ 01 августа 2011

Из документов :

str.split([<i>sep</i>[, <i>maxsplit</i>]])

Возвращать список слов в строке, используя sep какстрока разделителя.Если задано maxsplit , будет выполнено самое большее maxsplit (таким образом, список будет содержать не более maxsplit+1 элементов).

s.split('mango', 1)[1]
60 голосов
/ 01 августа 2011
>>> s = "123mango abcd mango kiwi peach"
>>> s.split("mango", 1)
['123', ' abcd mango kiwi peach']
>>> s.split("mango", 1)[1]
' abcd mango kiwi peach'
22 голосов
/ 09 июня 2014

Для меня лучший подход таков:

s.split('mango', 1)[-1]

... потому что, если случится, что вхождения нет в строке, вы получите "IndexError: list index out of range".

Следовательно, -1 не причинит никакого вреда, поскольку число случаев уже установлено на единицу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...