Jaki byłby najlepszy sposób podzielenia łańcucha przy pierwszym wystąpieniu separatora?
Na przykład:
"123mango abcd mango kiwi peach"
podział na pierwszy, mango
aby uzyskać:
"abcd mango kiwi peach"
Z dokumentów :
str.split([sep[, maxsplit]])
Zwraca listę słów w ciągu, używając sep jako ciągu ogranicznika. Jeśli maxsplit podana jest co najwyżej maxsplit podziały są zrobione (a więc lista będzie mieć co najwyżej
maxsplit+1
elementów).
s.split('mango', 1)[1]
maxsplit
liczby można wykonać więcej podziałów , ostatni element na liście będzie zawierał resztę ciągu (łącznie z dowolnymisep
znakami / ciągami znaków).źródło
Dla mnie lepsze podejście jest takie:
... bo jeśli tak się stanie, to wystąpienie nie jest w ciągu, dostaniesz "
IndexError: list index out of range"
.Dlatego
-1
nie odniesie żadnej szkody, ponieważ liczba wystąpień jest już ustawiona na jeden.źródło
Możesz także użyć
str.partition
:Zaletą użycia
str.partition
jest to, że zawsze zwróci krotkę w postaci:Dzięki temu rozpakowywanie danych wyjściowych jest naprawdę elastyczne, ponieważ w wynikowej krotce zawsze będą 3 elementy.
źródło
Spowoduje to podzielenie danych przy pierwszym wystąpieniu „.” w wartości kolumny ciągu lub ramki danych.
źródło