Разделение на первое вхождение Каким будет лучший способ разделить строку на первое вхождение разделителя? Например: "123mango abcd mango kiwi peach" разделение на первое mango чтобы получить: "abcd mango kiwi peach" Ответ 1 Из документов: str.split([ sep [, maxsplit ]]) Верните список слов в строке, используя sep в качестве строки разделителя. Если задано maxsplit, выполняется максимум maxsplit (таким образом, список будет иметь максимум maxsplit+1 элемент). s.split('mango', 1)[1] Ответ 2 >>> s = "123mango abcd mango kiwi peach" >>> s.split("mango", 1) ['123', ' abcd mango kiwi peach'] >>> s.split("mango", 1)[1] ' abcd mango kiwi peach' Ответ 3 Для меня лучший подход заключается в том, что: s.split('mango', 1)[-1] ... потому что, если случается, что вхождение не находится в строке, вы получите IndexError: list index out of range". Поэтому -1 не получит никакого вреда, причина, по которой количество вхождений уже установлено в один. Ответ 4 Вот подход itertools: s = "123mango abcd mango kiwi peach" "".join(it.islice(it.dropwhile(lambda x: x != " ", s), 1, None)) #'abcd mango kiwi peach'
Ответ 1 Из документов: str.split([ sep [, maxsplit ]]) Верните список слов в строке, используя sep в качестве строки разделителя. Если задано maxsplit, выполняется максимум maxsplit (таким образом, список будет иметь максимум maxsplit+1 элемент). s.split('mango', 1)[1]
Ответ 2 >>> s = "123mango abcd mango kiwi peach" >>> s.split("mango", 1) ['123', ' abcd mango kiwi peach'] >>> s.split("mango", 1)[1] ' abcd mango kiwi peach'
Ответ 3 Для меня лучший подход заключается в том, что: s.split('mango', 1)[-1] ... потому что, если случается, что вхождение не находится в строке, вы получите IndexError: list index out of range". Поэтому -1 не получит никакого вреда, причина, по которой количество вхождений уже установлено в один.
Ответ 4 Вот подход itertools: s = "123mango abcd mango kiwi peach" "".join(it.islice(it.dropwhile(lambda x: x != " ", s), 1, None)) #'abcd mango kiwi peach'