Qual seria a melhor maneira de dividir uma string na primeira ocorrência de um delimitador?
Por exemplo:
"123mango abcd mango kiwi peach"
dividindo no primeiro mango
a obter:
"abcd mango kiwi peach"
Dos documentos :
str.split([sep[, maxsplit]])
Retorne uma lista das palavras na sequência, usando sep como a sequência delimitadora. Se maxsplit for fornecido, no máximo as divisões maxsplit serão feitas (portanto, a lista terá no máximo
maxsplit+1
elementos).
s.split('mango', 1)[1]
maxsplit
contagem, o último elemento da lista conterá o restante da sequência (incluindo quaisquersep
caracteres / sequências).fonte
Para mim, a melhor abordagem é a seguinte:
... porque se isso acontecer, a ocorrência não está na string, você receberá "
IndexError: list index out of range"
.Portanto
-1
, não haverá nenhum dano, pois o número de ocorrências já está definido como um.fonte
Você também pode usar
str.partition
:A vantagem de usar
str.partition
é que sempre retornará uma tupla no formato:Portanto, isso facilita a descompactação do resultado, pois sempre haverá três elementos na tupla resultante.
fonte
Isso dividirá os dados com a primeira ocorrência de '.' no valor da coluna de sequência de caracteres ou quadro de dados.
fonte