Jaki byłby najlepszy sposób rozdzielenia ciągu znaków na pierwszym wystąpieniu ogranicznika?Podział na pierwsze wystąpienie
Na przykład:
"123mango abcd mango kiwi peach"
łupania na pierwszym mango
dostać:
"abcd mango kiwi peach"
Jaki byłby najlepszy sposób rozdzielenia ciągu znaków na pierwszym wystąpieniu ogranicznika?Podział na pierwsze wystąpienie
Na przykład:
"123mango abcd mango kiwi peach"
łupania na pierwszym mango
dostać:
"abcd mango kiwi peach"
Od the docs:
str.split([sep[, maxsplit]])
Wyświetl listę słów w łańcuchu, używając sep jako ciągu ogranicznika. Jeśli podana jest wartość maxsplit, zostaną wykonane co najwyżej rozszczepienia (dlatego lista będzie zawierać co najwyżej
maxsplit+1
elementów).
s.split('mango', 1)[1]
>>> s = "123mango abcd mango kiwi peach"
>>> s.split("mango", 1)
['123', ' abcd mango kiwi peach']
>>> s.split("mango", 1)[1]
' abcd mango kiwi peach'
Dla mnie lepszym rozwiązaniem jest to, że:
s.split('mango', 1)[-1]
... bo jeśli zdarza się, że zdarzenie nie jest w ciągu dostaniesz "IndexError: list index out of range"
Dlatego -1
. nie spowoduje żadnych szkód, ponieważ liczba wystąpień jest już ustawiona na 1.
Tutaj jest itertools
podejście:
s = "123mango abcd mango kiwi peach"
"".join(it.islice(it.dropwhile(lambda x: x != " ", s), 1, None))
#'abcd mango kiwi peach'
Co to jest ogranicznik? Mówisz, że się dzielisz, ale gdzie jest pierwsza część? Twój przykład nie jest wcale jasny! – GaretJax
Przepraszam, zapomniałem wspomnieć o ograniczniku! – Acorn